获取没有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地址上的列表。