Y bueno, para aquellos que pensaban que el bash scripting no existía en windows, los tendré que probar mal. Aunque es cierto que es medio raro, y no soporta casi nada, se pueden hacer scripts rápidamente, una vez se conoce la sintáxis.
Esta vez lo que hice fue un programa que recorre todas las dirs IP en un octeto y devuelve si se respondió el ping. Una manera muy rápida y simple de ver qué IP están ocupados en la subred. Bueno les dejo el script:
:: Author: Andrés Páez Martínez paezand@gmail.com
:: Uso - netping [octetos a recorrer] [dirección IP acortada]
:: octetos puede ser 1 o 2.
:: Dir. IP varía si es 1 octeto o dos.
:: Por ejemplo,
:: netping 1 192.168.0
:: netping 2 192.168
:: NOTA - Netping se tarda aprox. 0.3 segs. por dirección. Por lo tanto dos octetos se tarda como 5 horas
@echo off
::Detecta qué octeto fue de input %1 = primer input
IF "%1"=="1" echo One octet on && goto ONE
IF "%1"=="2" echo Two octets on && goto TWO
:ONE
:: Detecta si hubo input, pero no si hubo error en el input
IF "%2"=="" echo Three octets necessary && goto END
echo pinging net
::var es la variable como contador dentro del loop (e.g for(int var=255;var!=0;var--))
set var=255
:LOOP1
set "a=%2%."
set a=%a%%var%
:: EL comando core del script, hace ping, luego busca el string "ttl=" en lo que
:: devuelve ping. Si lo encuentra
:: entonces imprime la dir. ip seguida por "is up", sino lo mismo pero con down.
ping -w 500 -n 1 %a% | findstr "TTL=">NUL && echo %a% is up || echo %a% is down
set /a var=%var%-1
if not %var%==0 goto LOOP1
goto END
:: Lo mismo que one pero con un loop anidado
:TWO
IF "%2"=="" echo Two octets necessary && goto END
echo pinging net
set var=255
:LOOP2a
set var1=255
:LOOP2b
set "a=%2%."
set "a=%a%%var%.%var1%"
ping -w 500 -n 1 %a% | findstr "TTL=">NUL && echo %a% is up || echo %a% is down
set /a var1=%var1%-1
if not %var1%==0 goto LOOP2b
set /a var=%var%-1
if not %var%==0 goto LOOP2a
:END
PAUSE
No hay comentarios:
Publicar un comentario