获取没有DNS的网络上所有计算机的列表

时间:2008-09-19 21:13:56

标签: c# .net networking batch-file

问候,

我需要一种方法(通过C#或.bat文件)来获取给定网络上所有计算机的列表。通常情况下,我使用“网络视图”,但这往往只在您的域中起作用(根据我的理解)。我需要网络上所有可用计算机的名称(或至少IP地址)。

能够获取不属于我的域的所有计算机(在这种情况下我使用WORKGROUP,或任何默认值)也可以。

4 个答案:

答案 0 :(得分:7)

Nmap对此有好处 - 使用-O选项进行操作系统指纹识别,将-oX“filename.xml”用于output作为xml,然后可以从c#中解析。

合适的命令行是(其中192.168.0.0/24是要扫描的子网):

nmap -O -oX "filename.xml" 192.168.0.0/24

如果您对猜测操作系统不感兴趣,请忽略-O - 如果您只想使用-sP进行ping扫描,或者阅读文档以获取无数其他选项。

答案 1 :(得分:2)

扩展Unkwntech所说的话 -

您还可以执行“广播”ping操作,以避免必须单独ping每个IP地址。

之后,您可以立即使用“arp”检查ARP缓存并获取哪个IP地址在哪个MAC地址上。

答案 2 :(得分:1)

在愤怒中ping所有内容,然后您可以从响应的系统获取netbios信息以识别它的名称。

答案 3 :(得分:1)

在我的一个网络应用程序中,我使用NetApi32功能进行网络浏览。

代码: http://gist.github.com/11668