В C# как получить список имен локальных компьютеров, таких как просмотр сети в проводнике windows
есть много вопросов о получении имени и IP-адресов локальной машины и несколько о получении IP-адресов других машин в локальной сети (не все ответили правильно). Это совсем другое.
в проводнике windows если я выбираю сеть на боковой панели, я получаю представление о локальных машинах в моей локальной сети, перечисленных по имени машины (в рабочей группе windows, во всяком случае). Как получить ту же информацию программно в C#?
4 ответов
вам нужно транслировать запрос ARP для всех IP-адресов в заданном диапазоне. Начните с определения базового IP-адреса в сети, а затем задайте верхний идентификатор.
Я собирался написать несколько примеров кода и т. д., Но, похоже, кто-то полностью охватил это здесь;
кажется, это то, что вам нужно:Как получить список компьютеров в локальной сети?
В C#: Вы можете использовать решения Gong Библиотека Оболочки (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;
}