获取没有DNS的网络上所有计算机的列表
时间:2020-03-06 14:27:52 来源:igfitidea点击:
你好,
我需要一种方法(通过.bat文件中的Cor)来获取给定网络上所有计算机的列表。通常,我使用"网络视图",但是(根据我的理解),这仅在域内有效。我需要网络上所有可用计算机的名称(或者至少是IP地址)。
能够在非我的域上获得所有计算机(在这种情况下,我将使用WORKGROUP或者任何默认设置)也将起作用。
解决方案
对所有内容进行Ping操作,然后我们就可以从响应系统以识别其名称的系统中获取netbios信息。
Nmap对此非常有用,可以使用-O选项进行OS指纹识别,并使用-oX" filename.xml"作为xml输出,然后可以从c#中进行解析。
合适的命令行为(其中192.168.0.0/24是要扫描的子网):
nmap -O -oX "filename.xml" 192.168.0.0/24
如果我们只想使用-sP进行ping扫描,则不希望猜测OS则忽略-O,或者阅读文档以了解其他多种选择。
在我的一个Web应用程序中,我使用NetApi32函数进行网络浏览。
代码:
http://gist.github.com/11668
为了扩展Unkwntech所说的话-
我们也可以执行"广播" ping,以避免必须分别对每个IP地址执行ping操作。
之后,我们可以立即使用" arp"检查ARP缓存,并获取哪个IP地址在哪个MAC地址上的列表。

