此代码提供了我的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();
谢谢!
答案 0 :(得分:1)
在第一次近似时,您需要一个ARP缓存查看器(尝试执行" arp -a"并查看它是否是您想要的。)。
请参阅this question。
答案 1 :(得分:0)
对此的一些想法:
从热点的界面中删除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(ping C类192.168.1。*) - 这里有很多方法: Send a ping to each IP on a subnet 这会强制地址在arp中注册。
当然,您需要将ARP数据过滤到您要从热点查找的特定数据,因为如果您在服务器或本地计算机上运行此数据,则LAN上的所有内容都不是必需的,这不是必需的热点上的所有内容,所以你想要写一些东西来专门从热点获取数据。
答案 2 :(得分:0)