问候,
我需要一种方法(通过C#或.bat文件)来获取给定网络上所有计算机的列表。通常情况下,我使用“网络视图”,但这往往只在您的域中起作用(根据我的理解)。我需要网络上所有可用计算机的名称(或至少IP地址)。
能够获取不属于我的域的所有计算机(在这种情况下我使用WORKGROUP,或任何默认值)也可以。
答案 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功能进行网络浏览。