在C#中,如何获取本地计算机名称列表,例如在Windows资源管理器中查看网络的名称

Joh*_*son 7 c# windows lan workgroup

有很多关于获取本地机器的名称和IP地址的问题以及一些关于获取LAN上其他机器的IP地址的问题(并非所有机器都得到正确回答).这是不同的.

在Windows资源管理器中,如果我在侧栏上选择"网络",我会看到按机器名称列出的局域网上的本地计算机(无论如何,在Windows工作组中).如何在C#中以编程方式获取相同的信息?

Ale*_*ide 10

您可以尝试使用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);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)