2009-08-06 143 views

回答

2

我写了一个程序,它正是以获得在网络 IP地址/主机名的列表。我在家里:(

它使用PingNetworkInterface类,通过蛮力找到它。

我基本上通过所有接口迭代,产生有效的接口网络掩码的所有地址,并ping他们异步

这很简单,但并不完美如果有网络中的接口不回应坪,他们将不会列出,这可能是这样的情况下,如果有防火墙活跃(如Windows防火墙默认屏蔽ping)

哦,你好这是非常详尽的。

编辑: 即使Mitch Wheat's answer是不是你问什么,它提醒我,你可以使用Dns解决所有这些地址的主机名..

+0

+1矿山工程完全相同的方式。 – 2009-08-06 16:54:54

0

CodeProject上具有实现这一使用的一个非常粗暴的方式DOS命令net view:但是

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

+0

哎。这比我的解决方案还要糟糕。 – 2009-08-06 14:45:40

+0

是建议的解决方案不起作用 – 2009-08-06 17:19:21

1

一些需要注意的: 默认情况下,现代的Windows系统不响应ping(如XP的防火墙),所以提出的方法将无法可靠地工作。

我使用(虽然不是在Windows或C#),该技术是ping到整个子网,然后查看ARP缓存(如机器仍然会响应ARP请求。)

不知道一个会怎样尽管在C#中完成。

+0

+1。非常好的主意。将编辑我的答案,使Windows防火墙的事情更加明确。 – 2009-08-06 17:04:41