Supondo que você não tenha DNS configurado para sua rede local, sua melhor aposta é provavelmente usar o NMap, que pode (dependendo de quais switches você passar, como os hosts são configurados e como você tem sorte) informa o fornecedor da NIC e o endereço MAC, os serviços executados em cada host e, possivelmente, até mesmo a versão desses serviços e o sistema operacional que o sistema está executando.
O comando específico que eu usaria para isso é:
nmap -PR -sS -sU -sV -O -T4 192.168.0.0/16
Substitua 192.168.0.0/16
pelo CIDR adequado para sua rede.
As opções específicas fazem o seguinte:
-
-PR
: Usa solicitações ARP em vez de ICMP ECHO_REQUEST para determinar o que está online. Essa é uma pequena otimização de desempenho (você precisa enviar a solicitação ARP de qualquer maneira) e também detectará adequadamente os hosts que bloqueiam o ICMP ECHO_REQUEST como on-line. -
-sS
: Isso faz a varredura TCP SYN padrão que o NMap usa bye dfault. -
-sU
: semelhante ao-sS
, mas para UDP em vez de TCP. -
-sV
: permite a detecção de versão. Isso adiciona muito tempo à verificação, portanto, você pode excluí-la com segurança se não precisar dessas informações para descobrir o que é isso. -
-O
: permite a detecção do SO. Isso usa informações de tempo e outros dados das outras verificações para tentar descobrir qual sistema operacional o sistema está executando. Na verdade, é bastante preciso, desde que o sistema remoto tenha algumas portas TCP e UDP abertas. -
-T4
: Isso acelera bastante a varredura, ao custo de maior carga de rede.-T5
será ainda mais rápido, mas a varredura não funcionará de maneira confiável, a menos que tudo na rede esteja ocioso.
Se você quiser mais algumas informações, sugiro consultar a documentação do NMap, que é bastante exaustiva e provavelmente um dos projetos de código aberto mais bem documentados.