WHILE para PING em linha de comando

Publicado por Pedro Augusto Malanga em 03/02/2011

[ Hits: 10.988 ]

 


WHILE para PING em linha de comando



Olá pessoal, sei de outras opções para fazer um scanner e levantar os IPs de uma rede. Porém no caso de já saber qual é minha rede e querer saber somente quem está respondendo o ping, em linha de comando digite:

ip=0; while [ "$ip" -lt 255 ]; do ip=$((ip+1)); echo `ping -c 1 -t 5 192.168.1.$ip`; done;

Ele fará uma busca em 255 posições e teremos respostas parecidas com o seguinte:

PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data. --- 192.168.1.2 ping statistics --- 1 packets transmitted, 0 received, 100% packet loss, time 0ms


ou:

PING 192.168.1.5 (192.168.1.5) 56(84) bytes of data. 64 bytes from 192.168.1.5; icmp_seq=1 ttl=252 time=76.0 ms ---
192.168.1.5 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev =
76.067/76.067/76.067/0.000 ms


Por isso que eu gosto de Linux!

Abraços.

Outras dicas deste autor

Nmon - analisando o desempenho do Linux

free - Comando pra saber utilização de memória do Linux

Configurando servidor Proftp no Debian Lenny com autenticação LDAP e filtro por grupo

Análise performance no Linux com o Nmon

Tempo de execução de um comando - TIME ou TIMES

Leitura recomendada

Criando pastas em massa rapidamente no Linux

Como verificar erro de senha dos usuários

Como instalar pacotes locais no Fedora

Comandos de Exibição de Processos no Linux

Criando aliases úteis

  

Comentários
[1] Comentário enviado por hellnux em 03/02/2011 - 11:46h

Opa,

Só uma pequena contribuição. Em vez de:

ip=$((ip+1))

Pode ser apenas:

(( ip++ ))

[2] Comentário enviado por fabio em 03/02/2011 - 11:47h

Bela dica! Permita-me dar minha contribuição. Para mostrar somente os hosts que estão respondendo:

ip=0; while [ "$ip" -lt 15 ]; do ip=$((ip+1)); echo `ping -c 1 -t 5 192.168.78.$ip` 2>/dev/null | grep '1 received'; done;

Ou seja, apenas acrescentei o seguinte após o comando ping:

| grep '1 received'

Um abraço.

[3] Comentário enviado por luizluca em 03/02/2011 - 14:17h

Olá amigo,

Só para deixar registrado outra forma de varrer a rede por ping:

nmap -sP 192.168.1.0/24

Nmap é muito bom.

[4] Comentário enviado por fernandomerces em 04/02/2011 - 01:04h

Opa, legal a idéia. Vou contribuir também:

# Eu usaria o for, pra ficar menor
$ for i in `seq 1 254`; do ping -c 1 192.168.0.$i; done

# O BASH também suporta o C-style
$ for ((i=1; i<255; i++)); do ping -c 1 192.168.0.$i; done

Abraços!

[5] Comentário enviado por malanga em 04/02/2011 - 21:56h

valeu pessoal


show de bola as dicas....





Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts