Qualquer dispositivo bem comportado em uma LAN Ethernet é livre para ignorar praticamente qualquer tráfego, portanto, PINGs, varreduras de porta e similares não são confiáveis. No entanto, os dispositivos não estão livres para ignorar solicitações ARP , afaik. Dado que você especifica que está varrendo uma rede local, eu acho que o método menos frágil de fazer o que você quer é tentar se conectar a um endereço remoto, então procure no meu cache ARP.
Aqui está um dispositivo simples, sem filtragem (ou seja, um que não está configurado para ignorar algumas classes de tráfego IP):
[me@risby tmp]$ ping -c 1 -W 1 192.168.3.1
PING 192.168.3.1 (192.168.3.1) 56(84) bytes of data.
64 bytes from 192.168.3.1: icmp_seq=1 ttl=64 time=0.351 ms
[...]
[me@risby tmp]$ arp -a -n|grep -w 192.168.3.1
? (192.168.3.1) at b8:27:eb:05:f5:71 [ether] on p1p1
Aqui está um dispositivo de filtragem (um configurado com uma única linha de iptables
para ignorar o tráfego all ):
[me@risby tmp]$ ping -c 1 -W 1 192.168.3.31
[...]
1 packets transmitted, 0 received, 100% packet loss, time 0ms
[me@risby tmp]$ arp -a -n|grep -w 192.168.3.31
? (192.168.3.31) at b8:27:eb:02:e4:46 [ether] on p1p1
Aqui está um dispositivo que está desativado; note a falta de um endereço MAC:
[me@risby tmp]$ ping -c 1 -W 1 192.168.3.241
[...]
1 packets transmitted, 0 received, 100% packet loss, time 0ms
[me@risby tmp]$ arp -a -n|grep -w 192.168.3.241
? (192.168.3.241) at <incomplete> on p1p1
Este método não é infalível - ele perde dispositivos que estão desligados, por um lado - mas é o método menos terrível que eu já experimentei.
Editar : Eric Duminil, sim, só funciona em uma rede local; veja o parágrafo um.
Vishal, os métodos são funcionalmente idênticos. Observe o texto citado na resposta de Leo sobrenmap
:
When a privileged user tries to scan targets on a local ethernet network, ARP requests are used unless
--send-ip
was specified.
Seu método envolve menos digitação. O meu pode ser feito sem privilégios, e pode lhe dar uma melhor compreensão do que realmente está acontecendo. Mas a mesma coisa é feita no fio em ambos os casos.