Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: dafama en 19 Julio 2019, 08:00 am



Título: Bucle de cURL en CMD.
Publicado por: dafama en 19 Julio 2019, 08:00 am
Buenos días, necesito lanzar peticiones en bucle mediante el comando cURL para hacer un testeo a mi proxy y comprobar si falla.

El caso, es que necesito controlar también la salida, para comprobar si falla o no falla, si no falla (es decir, si el comando cURL nos devuelve la página web), que escriba un "Ok" y si falla (nos devuelve una salida que no es la página, cualquier error o lo que sea) que escriba  "Ha fallado" y la hora del sistema.

Para poder comprobar a que hora ha fallado.

Mi idea sería;

Lanza el cURL
 - Si responde bien  ->      Vuelve a lanzarlo
 - Si falla                ->      Escribe en un .txt y vuelve a lanzarlo


Tengo esto:

Código:
:inicio
curl -x http://172.16.192.1:8283 --proxy-user miusuario:micontraseña -L http://www.google.es
sleep 1
goto inicio


Con este código tengo creado el bucle infitino, que funciona correctamente.
Me falta el tema de controlar la salida y hacer la comparación, que es donde ando perdidisimo.

Alguien podría echarme una mano? Es un pelin urgente.


 Gracias.


Título: Re: Bucle de cURL en CMD.
Publicado por: dafama en 19 Julio 2019, 08:45 am
Edito.

Ya consigo que me escriba en los Logs, era tema de permisos.   (Srry for my bad!!)
Asique volvemos a la duda principal.

Como puedo "analizar" la salida del cURL para que si resuelve la página haga una cosa, y si falla haga otra?



Título: Re: Bucle de cURL en CMD.
Publicado por: dafama en 19 Julio 2019, 14:01 pm
Como soy un novato y no tengo ni idea.. he hecho lo siguiente:

Código:
curl -x http://172.16.192.1:8283 --proxy-user usuario:contraseña -L http://www.google.es > C:\Users\Dfad\Desktop\LogsProxy\file_%time:~0,2%%time:~3,2%%time:~6,2%_%date:~-10,2%%date:~-7,2%%date:~-4,4%.txt 

Con esto, lanzo la petición y guardo el resultado en un fichero con nombre_fecha.
(ej: FILE_132031_19072019.TXT)


Si ha conseguido conectarse, este comando me devuelve el código de la página, sino, me devuelve un error (dependiendo porque falle será un error u otro).

Despues con este otro código:
Código:
find "<!doctype html>" C:\Users\Dfadrique\Desktop\LogsProxy\file_*.txt >> C:\Users\Dfad\Desktop\LogsProxy\resultado.txt

Busco en los ficheros creados anteriormente la palabra "<!doctype html>", y si aparece es que me devolvió la pagina web, lo que quiere decir que logró conectarse satisfactoriamente,  y me escribe el resultado de FIND en otro fichero. (aunque con registrarme el nombre me valdría, pero no se hacerlo).


Para el análisis final, necesito que, si el nombre del fichero aparece dentro del "resultado.txt" me borre ese fichero, puesto que pudo conectarse correctamente.
Quedando así solo los ficheros en los que no aparecía el "<!doctype html>", es decir, quedando los ficheros que NO consiguieron establecer conexión.


Mi duda es:

Como hago un IF, que me lea el fichero "resultados.txt"  buscando los nombres de los ficheros que aparezcan dentro y borrando el fichero correspondiente si lo encuentra??



El fichero "resultados.txt" quedaría de la siguiente manera...
Código:
---------- C:\USERS\DFAD\DESKTOP\LOGSPROXY\FILE_131954_19072019.TXT
<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage"  .......

---------- C:\USERS\DFAD\DESKTOP\LOGSPROXY\FILE_132007_19072019.TXT
<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage"

---------- C:\USERS\DFAD\DESKTOP\LOGSPROXY\FILE_132031_19072019.TXT
<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage"

y tendría que ir cogiendo lso nombres "FILE_131954_19072019.TXT"  "FILE_132007_19072019.TXT"  "FILE_132031_19072019.TXT"  e ir borrando los archivos con ese nombre.