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
Análise performance no Linux com o Nmon
free - Comando pra saber utilização de memória do Linux
OpenFire com memória baixa
Tempo de execução de um comando - TIME ou TIMES
Leitura recomendada
Criando aliases úteis
Instalações e atualizações com apt-get no BRLix
Erro ao instalar programas/aplicativos .deb no Ubuntu pelo terminal [Resolvido]
Problema com o SU?
Recuperando apt-get após "falha de segmentação"
Comentários
Opa,
Só uma pequena contribuição. Em vez de:
ip=$((ip+1))
Pode ser apenas:
(( ip++ ))
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.
Mensagem
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.
Olá amigo,
Só para deixar registrado outra forma de varrer a rede por ping:
nmap -sP 192.168.1.0/24
Nmap é muito bom.
Mensagem
Olá amigo,
Só para deixar registrado outra forma de varrer a rede por ping:
nmap -sP 192.168.1.0/24
Nmap é muito bom.
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!
Mensagem
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!
valeu pessoal
show de bola as dicas....
Mensagem
valeu pessoal
show de bola as dicas....
Contribuir com comentário
Enviar