關於獲取本地計算機的名稱和IP地址以及獲取其他IP地址的問題有很多局域網上的機器(並非所有人都能正確回答)。這是不同的。在C#中,我如何獲得本地計算機名稱列表,如在Windows資源管理器中查看網絡的內容
在Windows資源管理器中,如果我選擇側欄上的網絡,我會根據計算機名稱(在Windows工作組中)列出本地計算機的視圖。我如何在C#中以編程方式獲得相同的信息?
關於獲取本地計算機的名稱和IP地址以及獲取其他IP地址的問題有很多局域網上的機器(並非所有人都能正確回答)。這是不同的。在C#中,我如何獲得本地計算機名稱列表,如在Windows資源管理器中查看網絡的內容
在Windows資源管理器中,如果我選擇側欄上的網絡,我會根據計算機名稱(在Windows工作組中)列出本地計算機的視圖。我如何在C#中以編程方式獲得相同的信息?
您可以嘗試使用System.DirectoryServices命名空間。
var root = new DirectoryEntry("WinNT:");
foreach (var dom in root.Children) {
foreach (var entry in dom.Children) {
if (entry.Name != "Schema") {
Console.WriteLine(entry.Name);
}
}
}
這似乎是你所追求的:How get list of local network computers?
在C#中:你可以用龔解決方案 殼牌圖書館 (https://sourceforge.net/projects/gong-shell/)
您需要爲給定範圍內的所有IP廣播ARP請求。首先在您的網絡上定義基礎IP,然後設置一個較高的標識符。
我打算寫一些代碼示例等,但它看起來像有人在這裏全面報道這一點;
public List<String> ListNetworkComputers()
{
List<String> _ComputerNames = new List<String>();
String _ComputerSchema = "Computer";
System.DirectoryServices.DirectoryEntry _WinNTDirectoryEntries = new System.DirectoryServices.DirectoryEntry("WinNT:");
foreach (System.DirectoryServices.DirectoryEntry _AvailDomains in _WinNTDirectoryEntries.Children)
{
foreach (System.DirectoryServices.DirectoryEntry _PCNameEntry in _AvailDomains.Children)
{
if (_PCNameEntry.SchemaClassName.ToLower().Contains(_ComputerSchema.ToLower()))
{
_ComputerNames.Add(_PCNameEntry.Name);
}
}
}
return _ComputerNames;
}
請跟隨因此[URL](http://stackoverflow.com/help)將有助於提高內容質量 – 2016-06-19 06:04:48
看一看這個解決方案:http://stackoverflow.com/questions/2557551/how-get-list-of-local-network-computers/2562302#2562302 – 2011-04-07 12:46:57