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
Tempo de execução de um comando - TIME ou TIMES
OpenLDAP básico no CentOS
free - Comando pra saber utilização de memória do Linux
Leitura recomendada
Como ver todos os grupos do sistema
Como converter uma imagem em favicon de múltiplas resoluções
Quem se logou no seu sistema
Habilitando sudo no Fedora 18
Tirando screeshots via 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