Você sempre pode tentar fazer ping para o endereço de broadcast da sua sub-rede. Depende da sua configuração de rede local, mas você pode encontrá-lo com
$ ifconfig wlp4s0 | grep Bcast
inet addr:192.168.199.47 Bcast:192.168.199.255 Mask:255.255.255.0
O ping do Linux requer o parâmetro de linha de comando -b
, que é uma espécie de precaução do comando.
No entanto, isso não garante que você coletará todos os endereços MAC de todos os dispositivos conectados à sua sub-rede, pois é o mesmo dispositivo que realmente atende a solicitações ICMP ECHO enviadas para endereços de broadcast, mesmo que isso tenha sido planejado de outra forma. idades iniciais dos RFCs TCP / IP (veja se /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
está definido como 1).
Para ter mais certeza de cobrir todos os endereços, faça um ping deles individualmente com
$ for ip in 192.168.199.{1..254}; do ping -c1 ${ip} & done
Mais ou menos o mesmo é alcançado se você usar um tipo de varredura especial do nmap com
$ sudo nmap -sn -PE -n 192.168.179.1-254
Essa também é a minha maneira recomendada de investigar, já que você pode ajustar a maneira como pergunta aos clientes sobre seus endereços MAC.