WHILE para PING em linha de comando

Publicado por Pedro Augusto Malanga em 03/02/2011

[ Hits: 10.940 ]

 


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

OpenLDAP básico no CentOS

OpenFire com memória baixa

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

Nmon - analisando o desempenho do Linux

Análise performance no Linux com o Nmon

Leitura recomendada

Flathub - Adicionando Repositório de Software no Fedora, CentOS e RedHat

SSH - Apagando conflitos de chaves RSA no arquivo known_hosts

Como descompactar arquivos tar.xz no Ubuntu/Debian e derivados

Baixar arquivos com wget utilizando autenticação

Criando uma lixeira no shell

  

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