有没有办法以编程方式(在c#中)获取与我的计算机位于同一域/子网中的所有其他工作站并显示有关它们的一些信息(如果它们处于活动状态,它们安装了哪种操作系统,它们的IP等)?
答案 0 :(得分:5)
nmap这样做多加一吨。它的开源。
答案 1 :(得分:1)
这是一个VB解决方案,但我很确定你能够做出改变所需的改变!
可能有更好的方法,但这是第一次削减。
Imports System.Net.NetworkInformation
Imports System.Directory Services
Class NetworkInfo
Function GetComputers() as list(Of String)
dim List as new list(of String)
Dim DomainEntry as new DirectoryEntry("WinNT://" + DomainInfo.GetDomain.Trim())
DomainEntry.Children.SchemaFilter.Add("computer")
For Each Machine as DirectoryEntry in DomainEntry.Children
List.Add(Machine.Name)
Next
return List
End Function
End Class
在System.Net.NetworkInformation命名空间中有各种有用的工具可以让你捕获IP地址等内容。
答案 2 :(得分:1)
我能想到的最简单的方法(远非傻瓜证明)是将ICMP echo request(在RFC 792中定义)发送到224.0.0.1。 C#提供Ping类来执行此操作。请记住,虽然您冒着丢包的风险,但还有一个问题是网络上的所有机器是否都支持组播。