2014-06-12 63 views
0

我想使用c#查找本地网络上的所有设备。如何ping我的本地网络中的所有设备并获得响应?

目前的解决方案基于ping本地网络上的每个IP。的东西,在这里解释:

How to Perform Multiple "Pings" in Parallel using C#

的问题是,如果我有一个网络接口更我的电脑上(例如一个无线网络连接和一个以太网),我怎么能知道哪一个我应该平?如何为每个网络找到合适的地址范围?等等。如果子网掩码是非常大的(例如,当子网是255.255.0.0,它会花费大量的时间来做到这一点

还有一些其他的建议解决方案,如本:

Locating computer on subnet/network

但我怎么能ping到广播地址,在C#中找到谁在接听?平只返回一个结果,一个IP(我说的对)?

有没有更好的解决办法?

+0

合适的地址=获得一个接口的IP地址,获得它的网络掩码,这将为您提供“本地”IP地址范围。 –

+0

@MarcB如何获得接口IP及其掩码?我如何枚举计算机中的接口? – mans

+0

出于好奇,也许提出了一个完全不同的解决方案,你会介意告诉我们整体情况是什么吗?为什么你想ping所有可能的地址? – RenniePet

回答

1

“但是,我怎么能ping广播地址并找出谁在回答?“没有广播ping这样的事情。如果你看看像nmap这样的网络扫描工具,它具有“ping扫描”功能,它在网络上识别节点的方式是通过个别ping。

+0

如何ping通广播地址?在这里记录的方式:http://stackoverflow.com/questions/2567107/ping-or-otherwise-tell-if-a-device-is-on-the-network-by-mac-in-c-sharp如果我可以阅读ARP,我可以找到IP的范围,然后发送命令直接获取他们的IP。 – mans

相关问题