C# 如何获取网络中的IP地址列表
如何获取网络中的IP地址/主机名列表C# 如何获取网络中的IP地址列表,c#,C#,如何获取网络中的IP地址/主机名列表 我用c#编写了一个程序,正好可以做到这一点。我在家里有:( 它使用和类,通过蛮力找到它 我基本上遍历所有接口,生成对接口网络掩码有效的所有地址,并异步ping它们 这很简单,但并不完美。如果网络中存在不响应ping的接口,则不会列出这些接口。如果存在活动的防火墙(如默认情况下阻止ping的Windows防火墙),则可能会出现这种情况 哦,是的,非常详尽 编辑: 尽管这不是您要求的,但它提醒我您可以使用解析所有这些地址的主机名。CodeProject使用DOS
我用c#编写了一个程序,正好可以做到这一点。我在家里有:( 它使用和类,通过蛮力找到它 我基本上遍历所有接口,生成对接口网络掩码有效的所有地址,并异步ping它们 这很简单,但并不完美。如果网络中存在不响应ping的接口,则不会列出这些接口。如果存在活动的防火墙(如默认情况下阻止ping的Windows防火墙),则可能会出现这种情况 哦,是的,非常详尽 编辑:
尽管这不是您要求的,但它提醒我您可以使用解析所有这些地址的主机名。CodeProject使用DOS
net view
命令实现这一点的方法非常粗糙:
但是需要注意的是:
默认情况下,现代Windows系统不响应ping(例如打开防火墙的XP),因此提出的方法无法可靠地工作
我使用的技术(虽然不是在Windows或C上)是ping整个子网,然后查看ARP缓存(因为机器仍然会响应ARP请求)
不知道如何在C#中实现这一点。Ouch。这比我的解决方案更糟糕。+1.非常好的主意。将编辑我的答案,使Windows防火墙更明确。