Existen muchas formas de escanear desde shell un rango de IPs o subnet, por ejemplo con nmap o creando un script en bash, perl, etc. No obstante aquí va una forma sencilla que he encontrado en Shell Fu:
for IP in 192.168.1.{1..10}; do if ping $IP -c 1 > /dev/null; then echo $IP alive; else echo $IP dead; fi; done
Y la salida (escaneo desde la 192.168.1.1 a 192.168.1.10
~$ for IP in 192.168.1.{1..10}; do if ping $IP -c 1 > /dev/null; then echo $IP alive; else echo $IP dead; fi; done 192.168.1.1 alive 192.168.1.2 dead 192.168.1.3 dead 192.168.1.4 dead 192.168.1.5 dead 192.168.1.6 dead 192.168.1.7 dead 192.168.1.8 dead 192.168.1.9 dead 192.168.1.10 dead
¡Y no nos olvidemos de Nmap! Puedes hacer esto, y muchas cosas más: http://nmap.org/
¡Saludos!
fping -g 192.168.1.0/24 2> /dev/null | grep alive
nmap -sP 192.168.1.0-255
Gracias a todos, mucho más sencillo ;)
Personalmente me quedo con la solución planteada por @Javi. Para información más detallada del comando nmap (y sus parámetros) al respecto recomiendo el siguiente enlace.
Salu2
Genial script, gracias
Gracias por el aporte,
Combinando tu script junto con unas modificaciones logre realizar un escaneo en el DD-WRT desde la consola aplicando el siguiente comando:
for i in $(seq 1 1 254) ; do if ping 192.168.1.$i -c 1 > /dev/null; then echo 192.168.1.$i alive; else echo 192.168.1.$i dead; fi; done
Espero les sirva el aporte!!!