WHILE para PING em linha de comando

Publicado por Pedro Augusto Malanga em 03/02/2011

[ Hits: 9.791 ]

 


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

Análise performance no Linux com o Nmon

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

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

OpenLDAP básico no CentOS

OpenFire com memória baixa

Leitura recomendada

Programas úteis para modo texto

Desmascarando pacotes em Sabayon e Gentoo

Converter vídeo para MP4 via terminal Linux

Verificando informações detalhadas de arquivos ou diretórios

Mudando o editor padrão do crontab

  

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
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts