Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何获取网络中的IP地址列表_C# - Fatal编程技术网

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

C# 如何获取网络中的IP地址列表,c#,C#,如何获取网络中的IP地址/主机名列表 我用c#编写了一个程序,正好可以做到这一点。我在家里有:( 它使用和类,通过蛮力找到它 我基本上遍历所有接口,生成对接口网络掩码有效的所有地址,并异步ping它们 这很简单,但并不完美。如果网络中存在不响应ping的接口,则不会列出这些接口。如果存在活动的防火墙(如默认情况下阻止ping的Windows防火墙),则可能会出现这种情况 哦,是的,非常详尽 编辑: 尽管这不是您要求的,但它提醒我您可以使用解析所有这些地址的主机名。CodeProject使用DOS

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

编写了一个程序,正好可以做到这一点。我在家里有:(

它使用和类,通过蛮力找到它

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

这很简单,但并不完美。如果网络中存在不响应ping的接口,则不会列出这些接口。如果存在活动的防火墙(如默认情况下阻止ping的Windows防火墙),则可能会出现这种情况

哦,是的,非常详尽

编辑:
尽管这不是您要求的,但它提醒我您可以使用解析所有这些地址的主机名。

CodeProject使用DOS
net view
命令实现这一点的方法非常粗糙:

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

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


不知道如何在C#中实现这一点。

Ouch。这比我的解决方案更糟糕。+1.非常好的主意。将编辑我的答案,使Windows防火墙更明确。