Este creo que es mi primer aporte, y lo advierto, es un poco cutre...
Soy muy novato en todo (comparado con algunos foreros, mi nivel en todo lo que la informatica concierne no llega ni a "pequeña langosta"), pero ayer estuve trasteando con Batch i creo que puede ser interesante colgarlo aqui.
La idea era escanear una red, desde windows, para ver los Host abiertos sin tener ningun escaner (al estilo del cain o angryIPscan...)
Por eso idee un simple codigo que realiza un bucle y hace un barrido de la red a trabes de ping... sencillo no? Aqui va!:
Código:
@echo off
TITLE PING SCAN by TheBigCrab -----------
set TT=100
set R=1
set A=192
set B=168
set C=1
set F=0
:init
cls
echo.
echo BATCH created for TheBigCrab
echo ====================================
echo / Actual configuracion /
echo / Primer bloque= %A% /
echo / Segundo bloque= %B% /
echo / Tercer bloque= %C% /
echo / Tiempo de espera (ms)= %TT% /
echo / Repeticiones del ping= %R% /
echo ====================================
echo IP:%A%.%B%.%C%.%F%
echo ==================================
echo 1-Configuracion de Red (tercer bloque)
echo 2-Barrido de red
echo 3-Mostrar captura
echo 4-Salir
echo 5-Conf de primer, segundo bloque, ping (-w y -n)
echo ==================================
echo.
set /P op= Escoja la opcion deseada:
if %op%== 1 goto config
if %op%== 2 goto barrido
if %op%== 3 goto Mostrar
if %op%== 4 goto Salir
if %op%== 5 goto pal
if %op%== %op% goto error
:error
cls
echo ¡ERROR!
pause
goto init
:config
cls
echo Configuración del rango de la IP:
echo Nombre de red actual == %A%.%B%.%C%.%F%
echo.
echo Introduzca una nueva red (ultimo bloque =0)
echo.
set /P C=Nº tercer bloque:
echo Ha introducido la IP: %A%.%B%.%C%.%F%
pause
goto barrido
:barrido
cls
echo ESCANEAR RED %A%.%B%.%C%.%F% (pulse para continuar)
pause >nul
FOR /L %%F IN (1, 1, 255) DO ping -n %R% -w %TT% %A%.%B%.%C%.%%F | FIND "TTL=" >> "%CD%"\IPSCANRESULTS.txt
goto Mostrar
:Mostrar
cls
arp -a
more "%CD%"\IPSCANRESULTS.txt
echo ------------------------------------------------------------
pause
goto init
:Salir
cls
exit
:pal
cls
echo.
set /P A=Introduze el valor del primer bloque:
set /P B=Introduze el valor del segundo bloque:
set /P C=Introduze el valor del Tercer bloque:
set /P TT=Introduze el valor de espra del ping (ms):
set /P R=Introduze el numero de repeticiones por cada direccion:
goto init
En fin! esto lo hice en poco menos de una hora,pero soy un cutre... lo se!!! Y es por eso que lo subo aqui, para ver si se pude mejorar la idea de alguna manera (por ejemplo que se pueda configurar una mascara de red para que se le puedan cambiar rangos, poner alguna opcion para el escanear puertos...). Tambien, queria que me mostrara los resultados mostrando la tabla ARP, que en principio deberia llenarse, pero al no ser asi siempre (es decir, avezes la tabla no coincidia con el resultado final de los ping), decidi que extrayera el resultado de los ping a un fichero externo para que fuera mas seguro.
Lo dejo aqui. Gracias!