Encontrar todos os computadores de uma rede utilizando Linux

image_pdfimage_print

Esta dica é para aqueles que querem mapear todos os equipamentos que estão em uma dada rede utilizando o shell do Linux.
Existem outras formas de efetuar esta pesquisa, mas no momento, iremos efetuar uma busca por aqueles equipamentos que estão configurados para responderem ao ping.

O código falhará se o equipamento estiver configurado para não responder ao ping.

Facilmente o código de exemplo abaixo poderá ser adaptado para o caso de sua rede. Este código foi projetado para varrer redes 192.168.1.xxx do ip 1 até o 254. Todas as vezes que um equipamento responder ao ping, será apresentado o ip do equipamento que respondeu, seguido da palavra UP. Verifique abaixo o comando e em seguida sua saída.

Comando:

$ for ip in $(seq 1 254); do ping -c 1 192.168.1.$ip>/dev/null; [ $? -eq 0 ] && echo "192.168.1.$ip UP" || : ; done

Exemplo de saída:
192.168.1.15 UP
192.168.1.27 UP
192.168.1.111 UP
192.168.1.243 UP

Deste modo, todas as máquinas da rede que responderem a ping serão encontradas e exibidas.

Caso queira acelerar a busca, para que o comando ping aguarde somente 1 segundo por cada consulta, basta adicionar o parâmetro -w ao ping com o valor 1, conforme abaixo:

$ for ip in $(seq 1 254); do ping -w 1 -c 1 192.168.1.$ip>/dev/null; [ $? -eq 0 ] && echo "192.168.1.$ip UP" || : ; done
Gostou? Tire um minutinho e dê sua contribuição para Drall Dev Community no Patreon!