2009-06-08 61 views

回答

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地址等

5

nmap這樣做加上多一噸。它的開源。

+0

謝謝,但我必須在現有的程序中實現此功能,所以我不能使用nmap – melculetz 2009-06-08 14:35:19

+0

然而,你可以看看Nmap是如何做到的,並在C#中重新實現該方法...... – Moo 2009-06-08 15:09:17

1

,我能想到的(最簡單的做法,遠不是傻瓜證明)是發送ICMPecho request(在RFC 792中定義)到224.0.0.1。 C#提供了Ping類來完成此操作。請記住,儘管您有丟包的風險,但是網絡上的所有機器是否支持多播也存在問題。

相關問題