Получить список всех компьютеров в сети без DNS - PullRequest
3 голосов
/ 20 сентября 2008

Привет,

Мне нужен способ (либо через C #, либо в .bat-файле) получить список всех компьютеров в данной сети. Обычно я использую «net view», но это имеет тенденцию работать (из моего понимания) только в вашем домене. Мне нужны имена (или хотя бы IP-адреса) всех компьютеров, доступных в моей сети.

Будет также работать возможность получить все компьютеры в домене, который не является моим (в этом случае я бы использовал WORKGROUP или любое другое значение по умолчанию).

Ответы [ 4 ]

7 голосов
/ 20 сентября 2008

Nmap подходит для этого - используйте опцию -O для снятия отпечатков ОС и -oX "filename.xml" для , выводите в виде xml, который затем можно анализировать с c #.

Подходящей командной строкой будет (где 192.168.0.0/24 - подсеть для сканирования):

nmap -O -oX "filename.xml" 192.168.0.0/24

пропустите опцию -O, если вы не заинтересованы в угадывании ОС - если вы просто хотите использовать пинг-прогон, используйте -sP или прочитайте документацию для множества других опций.

2 голосов
/ 22 сентября 2008

Чтобы расширить то, что сказал Unkwntech -

Вы также можете выполнить широковещательный пинг, чтобы избежать необходимости пинговать каждый IP-адрес по отдельности.

Сразу после этого вы можете использовать «arp» для проверки ARP-кэша и получения списка IP-адресов, по которым MAC-адрес.

1 голос
/ 20 сентября 2008

В одном из моих веб-приложений я использовал функцию NetApi32 для просмотра сети.

Код: http://gist.github.com/11668

1 голос
/ 20 сентября 2008

Пингуйте все в ярости, затем вы можете получить информацию о netbios из систем, которые отвечают, чтобы определить его имя.

...