lunes, 22 de febrero de 2010

Ping a toda una red en una sola linea


Cortita y al pie. Como pinguear a toda una red en una sola linea de comandos desde Windows.
Paso 1: abrir una consola (Inicio -> Run/Cuadro de busqueda -> CMD -> Enter)
Paso 2: Tipear lo siguiente en la linea de comando... y darle enter.. ;)

FOR /L %i IN (2,1,254) DO ping -n 1 192.168.1.%i | FINDSTR "TTL" >> pings.txt

Paso 3: Examinar el archivo pings.txt donde tendremos todas las IPs que respondieron al ping

Esta sintaxis del FOR hace que la variable %i tome los valores entre 2 y 254 con salto 1. En el DO armamos el ping y la IP la armamos con esta varible, de esta manera se ejecuta un ping para todas las IPs del rango 192.168.1.2 - 192.168.1.254. El parametro -n 1 hace que el ping envie solo un paquete (es todo lo que necesitamos). Con el FINDSTR filtramos para que se vean solo las lineas que contienen el string "TTL" en la cual aparecerá la IP de los equipos que respondan al ping. Y finalmente con >> redirigimos esta salida al archivo pings.txt.

Si queremos pinguear mas de una red podriamos usar 2 FOR anidados para armar los valores del 3º y 4º octeto.

UPDATE: Una versión actualizada para PowerShell puede verse aquí.

7 comentarios:

Vladimir Vargas Prado dijo...

Excelente aporte, muchas gracias!

Unknown dijo...

Lo que buscaba... gracias!!!

Unknown dijo...

Gracias, me sirvió mucho.

Unknown dijo...

muy útil, me sirvió mucho, gracias

Unknown dijo...
Este comentario ha sido eliminado por el autor.
Unknown dijo...

Gracias!!! muy bueno

Giovanni dijo...

Excelente, muy util