2012-11-05 123 views
-2

可能重复:
Get all IP-Hosts in Lan from mobile device获取无线网络的主机的IP地址

我怎样才能得到programmaticaly在无线网络中的所有主机?

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

我该如何做到这一点,如果我在紧凑型框架的Windows Mobile上工作并且想要这样做,是否有特殊的要点?

+0

两小时前你问了几乎相同的问题:http://stackoverflow.com/questions/13233808/get-all-ip-hosts-in-lan-from-mobile-device – tomfanning

+0

想到的第一个想法是枚举子网中的所有IP地址并尝试ping它们(或者更好地尝试一些端口扫描来获取已知服务)。 – BigMike

回答

2
+0

+1,即使你我怀疑一些linux盒子会有WMI接口 – BigMike

+0

好方法,但这些解决方案都不能确保你能得到wlan中的所有主机。本地防火墙通常会阻止icmp,ping和wmi请求。 –

+0

让局域网中的所有主机非常困难,最好的方法是对已知服务(wmi,netbios,ICMP等)的portscan,但仍然可能会丢失一些东西。网络扫描仪不容易编写。 (并保持最新) – BigMike

0

简单的答案是:你不能。更详细地说:除非你有一个协议来发现你的主机,例如NetBIOS。您可以通过pInvoke调用NetBEUI(NetBios用户界面)。看看这个以前的帖子:

Netbios support in .NET?

你可以使用另一种方法是来ping所有的IP地址,以便在WLAN的覆盖范围,并等待答复。这不是一个好方法,因为它非常耗费资源。

0

让所有的主机在网络是使用网络扫描的唯一途径。

你可以ping网络设备处于的所有有效IP地址。

或者你可以检查一个名字的本地DNS服务网络的每一个有效的IP,并列出你发现有对应的不同的名字IP。

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