В C # как получить список имен локальных компьютеров, например, что вы видите при просмотре сети в проводнике Windows - PullRequest
7 голосов
/ 07 апреля 2011

Существует много вопросов о получении имени и IP-адреса локального компьютера и несколько вопросов о получении IP-адресов других компьютеров в локальной сети (не все ответили правильно).Это другое.

В проводнике Windows, если я выберу «Сеть» на боковой панели, я получаю представление о локальных машинах в моей локальной сети, перечисленных по имени машины (в любом случае в рабочей группе Windows).Как получить ту же информацию программно в C #?

Ответы [ 4 ]

10 голосов
/ 07 апреля 2011

Вы можете попробовать использовать пространство имен 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);
        }
    }
}
3 голосов
/ 07 апреля 2011

Вам необходимо передать запрос ARP для всех IP-адресов в данном диапазоне.Начните с определения базового IP-адреса в вашей сети, а затем установите верхний идентификатор.

Я собирался написать несколько примеров кода и т. Д., Но похоже, что кто-то подробно это здесь рассмотрел;

Stackoverflow ARP вопрос

2 голосов
/ 07 апреля 2011

Похоже, что вы ищете: Как получить список компьютеров локальной сети?

В C #: вы можете использовать библиотеку оболочки Gong Solutions (https://sourceforge.net/projects/gong-shell/)

0 голосов
/ 19 июня 2016
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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...