如何获取网络中的IP地址/主机名列表 使用c#
答案 0 :(得分:2)
我写了一个完全正确的程序。我在家里有它:(
它使用Ping和NetworkInterface类,通过强力发现它。
我基本上遍历所有接口,生成所有对接口网络掩码有效的地址,并异步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
命令实现这一目标非常简洁: