Предполагая, что у вас не настроен DNS для вашей локальной сети, лучше всего использовать NMap, который может (в зависимости от того, какие переключатели вы передаете, как настроены хосты и как вам повезло), сказать вам Поставщик сетевой карты и MAC-адрес, службы, работающие на каждом хосте, и, возможно, даже версия этих служб и какая ОС работает в системе.
Конкретная команда, которую я бы использовал для этого:
nmap -PR -sS -sU -sV -O -T4 192.168.0.0/16
Замените 192.168.0.0/16
на соответствующий CIDR для вашей сети.
Конкретные параметры делают следующее:
-PR
: использует ARP-запросы вместо ICMP ECHO_REQUEST для определения того, что находится в сети. Это небольшая оптимизация производительности (вам все равно нужно отправить запрос ARP), и она также будет правильно определять хосты, которые блокируют ICMP ECHO_REQUEST как онлайн.
-sS
: выполняется стандартное сканирование TCP SYN, которое NMap использует пока dfault.
-sU
: аналогично -sS
, но для UDP вместо TCP.
-sV
: включает определение версии. Это добавляет много времени на сканирование, поэтому вы можете безопасно исключить его, если вам не нужна эта информация, чтобы выяснить, что к чему.
-O
: включает определение ОС. При этом используется информация о времени и другие данные из других сканирований, чтобы попытаться выяснить, на какой ОС работает система. На самом деле это довольно точно, если в удаленной системе есть пара открытых портов TCP и UDP.
-T4
: Это значительно ускоряет сканирование за счет увеличения нагрузки на сеть. -T5
будет работать еще быстрее, но сканирование не будет работать надежно, если все в сети не работает.
Если вам нужна дополнительная информация, я предлагаю взглянуть на документацию по NMap, она довольно исчерпывающая и, возможно, является одним из наиболее хорошо документированных проектов с открытым исходным кодом.