我想列出所有連接的網絡計算機列表框中。有誰知道如何?網絡上的計算機名VB.Net
回答
增加提及System.DirectoryServices
。
添加;
Imports System.DirectoryServices
然後使用;
Private Delegate Sub UpdateDelegate(ByVal s As String)
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim t As New Threading.Thread(AddressOf GetNetworkComputers)
t.IsBackground = True
t.Start()
End Sub
Private Sub AddListBoxItem(ByVal s As String)
ListBox1.Items.Add(s)
End Sub
Private Sub GetNetworkComputers()
Dim alWorkGroups As New ArrayList
Dim de As New DirectoryEntry
de.Path = "WinNT:"
For Each d As DirectoryEntry In de.Children
If d.SchemaClassName = "Domain" Then alWorkGroups.Add(d.Name)
d.Dispose()
Next
For Each workgroup As String In alWorkGroups
de.Path = "WinNT://" & workgroup
For Each d As DirectoryEntry In de.Children
If d.SchemaClassName = "Computer" Then
Dim del As UpdateDelegate = AddressOf AddListBoxItem
Me.Invoke(del, d.Name)
End If
d.Dispose()
Next
Next
End Sub
如果OP想要所有工作組會怎麼樣?畢竟,「網絡」顯示了一切。 – Neolisk 2013-03-10 22:45:15
查看我的修改後的代碼;-) – PGallagher 2013-03-10 23:13:49
現在您處於正確的軌道上。 Upvoting ... – Neolisk 2013-03-10 23:46:33
我斬了一些代碼,讓你這個,如果它不完美的是應儘量接近(希望它能幫助)...
Private Sub GetCurrentDevices()
Try
Dim ps As New System.Diagnostics.ProcessStartInfo("arp", "-a ")
ps.RedirectStandardOutput = True
ps.UseShellExecute = False
ps.WindowStyle = ProcessWindowStyle.Hidden
ps.CreateNoWindow = True
Dim sbResults As New StringBuilder
Using proc As New System.Diagnostics.Process()
proc.StartInfo = ps
proc.Start()
Dim sr As System.IO.StreamReader = proc.StandardOutput
While Not proc.HasExited
System.Threading.Thread.Sleep(100)
End While
sbResults.Append(sr.ReadToEnd)
End Using
Dim IP_Address, MAC_Address, Device_Name As String
Dim AllOutputLines() As String = sbResults.ToString.Split(vbCrLf)
sbResults = Nothing
For Each IndividualOutputLine As String In AllOutputLines
Windows.Forms.Application.DoEvents()
If IndividualOutputLine.Contains("dynamic") Then
Dim Entries() As String = IndividualOutputLine.Split(New String() {}, StringSplitOptions.RemoveEmptyEntries)
If Entries.Length = 3 Then
'Here is your info ...
IP_Address = Entries(0)
MAC_Address = Entries(1).ToUpper
Device_Name = GetComputerName(IP_Address)
End If
End If
Next
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
Private Function GetComputerName(ByVal IP_Address As String) As String
Dim ReturnValue As String = cUnknown
Try
Dim myIPs As System.Net.IPHostEntry = System.Net.Dns.GetHostEntry(IP_Address)
ReturnValue = myIPs.HostName
myIPs = Nothing
Catch ex As Exception
End Try
If ReturnValue = IP_Address Then ReturnValue = cUnknown
Return ReturnValue
End Function
感謝您的回覆.. :) – Kraxed 2013-03-11 13:44:59
- 1. 網絡上的計算機名稱,my.computer.name
- 2. 獲取網絡計算機的名稱
- 3. 爲網絡上的計算機創建主機名
- 4. C#計算機名稱或網絡上的計算機ip關驅動器號
- 5. 獲得網絡計算機名稱
- 6. 用javascript在網絡上ping計算機
- 7. 在網絡上ping計算機
- 8. 計算機網絡 - BGP
- 9. 從網絡中的計算機獲取計算機描述
- 10. 用VB.Net通過本地網絡使用計算機名稱返回IP地址
- 11. 如何查找網絡計算機名稱和用戶登錄該計算機?
- 12. 網絡計算機的IP地址
- 13. 計算機網絡中的位填充
- 14. 本地網絡計算機中的reCAPTCHA
- 15. 從計算機網絡名稱獲取用戶名
- 16. 定位子網/網絡上的計算機
- 17. 列出iPhone上本地網絡上的所有計算機名稱
- 18. 在網絡上的另一臺計算機上啓動進程
- 19. 網絡層(通過計算機網絡,的Tanenbaum)
- 20. 在遠程計算機上安裝網絡打印機
- 21. 從我的網絡位置獲取計算機名稱
- 22. 在計算機網絡中使用Wireshark
- 23. 式計算機構用於網絡
- 24. 獲取網絡計算機System.Environment.TickCount
- 25. 計算機網絡端口地址
- 26. 黑客攻擊計算機網絡
- 27. 網絡延遲和計算機凍結
- 28. 我想網絡共享計算機
- 29. DDOS攻擊計算機網絡
- 30. 在網絡上找不到VM guest XP計算機的網絡路徑
你想看到'計算機的所有計算機 - > Network'頁(Windows 7)? – Neolisk 2013-03-10 02:28:44
是的確切..我不知道從哪裏開始,這是我的問題Dan-o – Kraxed 2013-03-10 14:53:46