[英]using c# get MAC address of devices connected to my hotspot
该代码提供了我的PC的MAC地址,但我想查找连接到wifi热点的那些移动或计算机设备的MAC地址。
string mac = "";
foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces())
{
if (nic.OperationalStatus == OperationalStatus.Up &&
(!nic.Description.Contains("Virtual") && !nic.Description.Contains("Pseudo")))
{
if (nic.GetPhysicalAddress().ToString() != "")
{
mac = nic.GetPhysicalAddress().ToString();
}
}
}
MessageBox.Show(mac);
我想做类似的事情,例如下面的伪代码:
string MAC;
//method for retrieving mac address of the connected devices to my hotspot.
ConnectedDevices()
{
// some code which will give you MAC of that device.
MAC = mac address of connected device;
}
label1.text=mac.toString();
谢谢!
首先,您需要一个ARP缓存查看器(尝试执行“ arp -a”并查看它是否是您想要的。)。
请看这个问题 。
关于此的一些想法:
从您的热点界面中抓取IP地址。 我的有telnet,ssh和Web界面,所以我可以从中获取IP和MAC。
使用热点中的ARP表-它也将包含IP / MAC。
在子网上使用ARP(如果您有幸拥有子网化的热点流量)
为了处理ARP数据,这里是处理命令输出的人员,以及提供VB代码以直接访问列表(可以翻译)的帖子。 http://blog.laplante.io/2011/11/reading-arp-entries-with-c/
根据过去的经验,我必须广播ping网络才能查看所有设备。 例如ping 192.168.1.255(对丙类192.168.1。*进行ping操作)-这里有许多方法: 向子网上的每个IP发送ping操作,这会强制将地址注册到arp中。
当然,您需要将ARP数据过滤为您要从热点中查找的特定数据,因为如果您在服务器或本地计算机上运行ARP数据,则是LAN上的所有内容,不一定是热点中的所有内容,因此,您可能需要编写一些内容来专门从热点获取数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.