C # в Linux: как перечислить компьютеры в локальной сети? - PullRequest
2 голосов
/ 21 августа 2010

Как можно перечислить все имена компьютеров и IP-адреса удаленных компьютеров в локальной сети?

Примечание: НЕ в Windows (как это сделать с помощью Google), мне нужно что-то, что работает в Linux! Или пример C / C ++ также сделает это, я могу вызвать libc из C #.

Ответы [ 3 ]

1 голос
/ 11 июля 2017

Вы можете запустить smbtree, чтобы убедиться, что samba установлена.

запустить smbtree, который покажет весь домен, компьютер и общий ресурс в сети. Запишите эту деталь в файл и используйте этот файл для получения необходимой информации.

См. Вывод команды smbtree

[paul@RHEL4b ~]$ smbtree
Password: 
WORKGROUP
    \\W2000          
PEGASUS
    \\WINXP          
    \\RHEL4B                        Pegasus Domain Member Server
        \\RHEL4B\ADMIN$                 IPC Service (Pegasus Domain Member Server)
        \\RHEL4B\IPC$                   IPC Service (Pegasus Domain Member Server)
        \\RHEL4B\domaindata             Active Directory users only
    \\HM2003  

WORKGROUP, PEGASUS - доменное имя

W2000, WINXP,RHEL4B, HM2003 это имя сервера

RHEL4B\ADMIN$, RHEL4B\IPC$, RHEL4B\domaindata это акции

0 голосов
/ 21 августа 2010

Самый простой способ - отправить широковещательный пакет icmp, посмотреть, кто ответит, и посчитать это. Это должно быть выполнено довольно стандартным способом с любым языком программирования, который имеет стандартные сетевые библиотеки для tcp / ip.

0 голосов
/ 21 августа 2010

Посмотрите на источник smbtree из самбы.

...