在C#中,如何获得本地计算机名列表,如在windows资源管理器中查看网络时获得的名称
关于获取本地机器的名称和IP地址,有很多问题,关于获取LAN上其他机器的IP地址,也有一些问题(并非所有问题都回答正确)。这是不同的在C#中,如何获得本地计算机名列表,如在windows资源管理器中查看网络时获得的名称,c#,windows,lan,workgroup,C#,Windows,Lan,Workgroup,关于获取本地机器的名称和IP地址,有很多问题,关于获取LAN上其他机器的IP地址,也有一些问题(并非所有问题都回答正确)。这是不同的 在windows资源管理器中,如果我在侧栏上选择“网络”,我会看到LAN上的本地机器的视图,按机器名称列出(无论如何,在windows工作组中)。我如何在C#中通过编程获得相同的信息?这似乎是您所追求的: 在C中:你可以使用Gong解决方案 Shell库 () 您可以尝试使用名称空间 var root = new DirectoryEntry("WinNT:");
在windows资源管理器中,如果我在侧栏上选择“网络”,我会看到LAN上的本地机器的视图,按机器名称列出(无论如何,在windows工作组中)。我如何在C#中通过编程获得相同的信息?这似乎是您所追求的: 在C中:你可以使用Gong解决方案 Shell库 () 您可以尝试使用名称空间
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);
}
}
}
您需要为给定范围内的所有IP广播ARP请求。首先定义网络上的基本IP,然后设置一个较高的标识符 我本打算写一些代码示例等,但似乎有人已经在这里全面介绍了这一点
公共列表列表网络计算机()
{
列表_ComputerNames=新列表();
字符串_ComputerSchema=“Computer”;
System.DirectoryServices.DirectoryEntry\u WinNTDirectoryEntries=new System.DirectoryServices.DirectoryEntry(“WinNT:”);
foreach(System.DirectoryServices.DirectoryEntry\u WinntDirectory Entries.Children中的可用域)
{
foreach(System.DirectoryServices.DirectoryEntry\u PCNameEntry in\u AvailDomains.Children)
{
如果(_PCNameEntry.SchemaClassName.ToLower())包含(_ComputerSchema.ToLower())
{
_ComputerNames.Add(_PCNameEntry.Name);
}
}
}
返回计算机名称;
}
看看这个解决方案:请遵循[URL]()这将有助于提高您的内容质量
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;
}