我正在尝试获取连接到我的无线接入点(在计算机本身上运行)的所有设备的mac地址。 到目前为止,我已经查看了TCPConnectionInterface类和NetworkInterface类,但却没有 找到任何检索此信息的方法。 我也尝试了ManagedWiFi API,但这似乎只能显示有关无线网络的信息。
我想做这样的事情:
foreach (ConnectedDevice device : MyWirelessAccessPoint.getDevices()) {
Console.writeline(device.getMacAddress());
}
有关如何实现这一目标的任何建议?
答案 0 :(得分:0)
如果您拥有设备的IP地址,则可以使用http://www.pinvoke.net/default.aspx/iphlpapi.sendarp获取MAC地址。
/提笔
答案 1 :(得分:0)
我意识到这对于告诉你如何这样做并不是非常有帮助,但我建议你看一下如何检索机器的“arp缓存”。
网络上的每台计算机都维护着自己的arp缓存,它将MAC地址映射到IP地址。由于您的计算机实际上充当无线接入点,我猜您可以确定您的计算机的arp缓存是最新的。
编辑:GetIpNetTable Windows API函数看起来很有希望:http://msdn.microsoft.com/en-us/library/aa365956(v=VS.85).aspx
EDIT2:另外,您可能想要引用这个问题:How do I access ARP-protocol information through .NET?