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
Configurando servidor Proftp no Debian Lenny com autenticação LDAP e filtro por grupo
free - Comando pra saber utilização de memória do Linux
OpenFire com memória baixa
OpenLDAP básico no CentOS
Leitura recomendada
Gnome/KDE: Sistema não loga ou efetua logoff em 10 segundos (ERRO no .ICEauthority)
Introdução ao uso do terminal (parte 2) [Vídeo]
Guia de bolso com os principais comandos Linux
Redirecionando saída de comando para arquivo com sudo
Manipulando arquivos PDF pela linha de comando
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