如何获取网络中的IP地址列表

时间:2009-08-06 14:12:49

标签: c#

如何获取网络中的IP地址/主机名列表 使用c#

3 个答案:

答案 0 :(得分:2)

我写了一个完全正确的程序。我在家里有它:(

它使用PingNetworkInterface类,通过强力发现它。

我基本上遍历所有接口,生成所有对接口网络掩码有效的地址,并异步ping它们。

这很简单,但并不完美。如果网络中的接口没有回复ping,则不会列出它们。如果防火墙处于活动状态(例如Windows防火墙默认阻止ping),则可能出现这种情况。

哦,是的,它非常详尽。

修改 尽管Mitch Wheat's answer不是您提出的问题,但它提醒我您可以使用Dns来解析所有这些地址的主机名。

答案 1 :(得分:1)

值得注意的是: 默认情况下,现代Windows系统不响应ping(例如打开防火墙的XP),因此建议的方法无法可靠地工作。

我使用的技术(尽管不在Windows或C#上)是ping整个子网,然后查看ARP缓存(因为机器仍将响应ARP请求。)

不确定如何在C#中完成此任务。

答案 2 :(得分:0)

CodeProject使用DOS net view命令实现这一目标非常简洁:

http://www.codeproject.com/KB/IP/ipaddresses.aspx