繁体   English   中英

使用c#获取连接到我的热点的设备的MAC地址

[英]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”并查看它是否是您想要的。)。

请看这个问题

关于此的一些想法:

  1. 从您的热点界面中抓取IP地址。 我的有telnet,ssh和Web界面,所以我可以从中获取IP和MAC。

  2. 使用热点中的ARP表-它也将包含IP / MAC。

  3. 在子网上使用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上的所有内容,不一定是热点中的所有内容,因此,您可能需要编写一些内容来专门从热点获取数据。

您可以运行从代码netsh wlan show hosted并解析输出。 netsh wlan show hosted将为您提供热点连接设备的数量以及每个设备的MAC地址:

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM