关于获取本地计算机的名称和IP地址以及关于获取局域网中其他计算机的IP地址的问题(未全部正确回答)有许多问题。 这是不同的。
在Windows资源pipe理器中,如果我select侧栏上的networking,我可以看到我的局域网上的机器名称列出(在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); } } }
您需要为给定范围内的所有IP广播ARP请求。 首先在您的网络上定义基本IP,然后设置一个较高的标识符。
我打算写一些代码示例等,但似乎有人在这里全面地介绍了这一点;
Stackoverflow的ARP问题
这似乎是你在之后: 如何获得本地网络电脑列表?
在C#中:你可以使用龚解决shell库( https://sourceforge.net/projects/gong-shell/ )
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; }