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í.

6 comentarios:

Vladimir Vargas Prado dijo...

Excelente aporte, muchas gracias!

Efren Gustavo Tuyuc dijo...

Lo que buscaba... gracias!!!

Leonardo Guerrero dijo...

Gracias, me sirvió mucho.

Fabian Jafet Aké Martínez dijo...

muy útil, me sirvió mucho, gracias

Topadora Taiton dijo...
Este comentario ha sido eliminado por el autor.
Topadora Taiton dijo...

Gracias!!! muy bueno