C# 获取无线网络的主机IP

C# 获取无线网络的主机IP,c#,.net,compact-framework,wifi,C#,.net,Compact Framework,Wifi,可能重复: 如何获取无线网络中所有主机的编程信息 我知道我正在使用的无线局域网,并且已连接到它。现在我想显示一个主机列表(或者至少是它们的IP地址) 如果我在使用compact framework的windows mobile上工作,并且想要做到这一点,我该如何做到这一点呢?答案很简单:你做不到。更详细地说:除非您有一个协议来发现您的主机,例如NetBIOS,否则您不能这样做。您可以通过pInvoke调用NetBEUI(NetBios用户界面)。请看前一篇帖子: 您可以使用的另一种方法是pi

可能重复:

如何获取无线网络中所有主机的编程信息

我知道我正在使用的无线局域网,并且已连接到它。现在我想显示一个主机列表(或者至少是它们的IP地址)


如果我在使用compact framework的windows mobile上工作,并且想要做到这一点,我该如何做到这一点呢?答案很简单:你做不到。更详细地说:除非您有一个协议来发现您的主机,例如NetBIOS,否则您不能这样做。您可以通过pInvoke调用NetBEUI(NetBios用户界面)。请看前一篇帖子:


您可以使用的另一种方法是ping WLAN范围内的所有IP地址并等待响应。这不是一个好方法,因为它非常消耗资源。

有很多方法。例如:

  • ARP:

  • WMI:

  • ICMP:


Etc

获取网络中所有主机的唯一方法是使用网络扫描

您可以ping设备所在网络的所有有效IP

或者,您可以在本地DNS服务上检查网络的每个有效IP以查找名称,并列出您找到的具有相应IP的不同名称


如果子网掩码对应的位与设备拥有的IP相同,则IP是有效的。

两小时前你问了几乎相同的问题:首先想到的是枚举子网中的所有IP地址并尝试ping它们(或者最好尝试一些端口扫描以获得已知服务).不错的方法,但这些解决方案都不能确保您在wlan中获得所有主机。本地防火墙通常会阻止icmp、ping和wmi请求。在lan中获取所有主机非常困难,最好的方法是对已知服务(wmi、netbios、icmp和其他)进行端口扫描,但仍然可能会遗漏一些内容。网络扫描器的编写并不简单。(并保持最新)