elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Script batch para ping
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Script batch para ping  (Leído 21,520 veces)
terrateck

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Script batch para ping
« en: 18 Junio 2013, 18:43 pm »

Hola a todos,

Me gustaría que me ayudaseis a crear un batch para hacer ping y almacenar los resultados. Hasta ahora lo que he conseguido hacer es:

Código:
@echo off
setlocal
for /F "delims=" %%i in ('ping google.es -t') do echo %date% %time% %%i 1>> output.txt

Que al finalizar almacena los resultados en un documento TXT de salida.

Pero lo que me gustaría conseguir es una utilidad que vaya haciendo un ping solo cada 5 o 10 seg y almacene los datos en un TXT únicamente cuando se pierda un paquete, con la hora y la fecha correspondiente y en ese mismo momento, sin tener que finalizar la ejecución.
¿Sería posible?

Gracias.


En línea

Meine programmen

Desconectado Desconectado

Mensajes: 121



Ver Perfil
Re: Script batch para ping
« Respuesta #1 en: 18 Junio 2013, 21:36 pm »

Quizas esto te sirva:

Código:
@ECHO OFF
SET /P numero=¨Numero de segundos entre cada ping?
:Ciclo
SET prueba=
ping localhost -n %numero% >nul
(ping google.es
echo %DATE% %TIME%)>1.txt
FOR /F "tokens=*" %%A IN ('findstr /N "    (0% perdidos)," 1.txt') DO (SET prueba=%%A)
IF NOT "%prueba%"=="" (GOTO Ciclo)
FOR /F "tokens=*" %%B IN ('TYPE 1.txt') DO (SET fecha=%%B)
echo Paquete perdido
echo Paquete perdido %fecha%>>"Paquetes perdidos.txt"
GOTO Ciclo


En línea

REMEMBER! Reality is an illusion, the universe is a hologram, BUY GOLD! BYE!!

terrateck

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: Script batch para ping
« Respuesta #2 en: 18 Junio 2013, 22:46 pm »

Gracias por la ayuda, Meine programmen.

Lo he probado, pero tras introducir el numero de segundos y generarse el fichero 1.txt, me da el error de la sintaxis del comando no es correcta, y se cierra directamente.

¿Dónde puede estar el problema?
En línea

Meine programmen

Desconectado Desconectado

Mensajes: 121



Ver Perfil
Re: Script batch para ping
« Respuesta #3 en: 18 Junio 2013, 23:34 pm »

Creo (Y solo creo) que ya lo arregle
Código:
@ECHO OFF
setlocal enabledelayedexpansion
SET /P numero=¨Numero de segundos entre cada ping?
:Ciclo
SET prueba=
ping localhost -n %numero% >nul
(ping google.es
echo %DATE% %TIME%)>1.txt
find /C /I "(0%% perdidos" "1.txt">2.txt
FOR /F "tokens=*" %%A IN ('TYPE 2.txt') DO (SET prueba=!prueba!%%A)
SET prueba=%prueba:---------- 1.TXT:=%
SET prueba=%prueba: =%
IF NOT "%prueba%"=="0" (GOTO Ciclo)
FOR /F "tokens=*" %%B IN ('TYPE 1.txt') DO (SET fecha=%%B)
echo Paquete perdido
echo Paquete perdido %fecha%>>"Paquetes perdidos.txt"
GOTO Ciclo
Cuando no hay paquetes perdidos funciona como deberia.
« Última modificación: 18 Junio 2013, 23:53 pm por Meine programmen » En línea

REMEMBER! Reality is an illusion, the universe is a hologram, BUY GOLD! BYE!!

terrateck

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: Script batch para ping
« Respuesta #4 en: 19 Junio 2013, 01:06 am »

Hola,
Ya lo he probado y funciona correctamente, es justo lo que quería.
Gracias por la ayuda prestada.

Una cuestión: ¿por que en la instrucción find se busca "(0%% perdidos"? Me refiero al doble signo de porcentaje.
« Última modificación: 19 Junio 2013, 01:14 am por terrateck » En línea

Royca3

Desconectado Desconectado

Mensajes: 45



Ver Perfil WWW
Re: Script batch para ping
« Respuesta #5 en: 19 Junio 2013, 01:49 am »

Utiliso el Batch de Meine programmen pero no me guarda los resultados? es porque no hay problema y ningún paquete se pierde?

Saludos.
En línea

Homo erectus
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Script batch para ping
« Respuesta #6 en: 19 Junio 2013, 09:23 am »

yo estuve haciendo algo similar XD termine haciendolo en C y al final luego de una semana tenia una masa de 300.000 lineas que no pude analizar XD

si consigo el exe te lo publico aqui
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Meine programmen

Desconectado Desconectado

Mensajes: 121



Ver Perfil
Re: Script batch para ping
« Respuesta #7 en: 19 Junio 2013, 10:18 am »

Una cuestión: ¿por que en la instrucción find se busca "(0%% perdidos"? Me refiero al doble signo de porcentaje.
Desde cmd el comando si que llevaria solo un signo %, pero en un .bat tienes que poner dos para que funcione. Con el comando FOR pasa lo mismo. No se exactamente por qué, pero es así.
En línea

REMEMBER! Reality is an illusion, the universe is a hologram, BUY GOLD! BYE!!

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Script batch para ping
« Respuesta #8 en: 19 Junio 2013, 10:19 am »

aquí está

https://mega.co.nz/#!udQhzbIJ!MWfyeSP4ttCjbNdZ3EL8xClyVlp01-c_yRi_4dEo-jA


el crea en la carpeta donde se ejecute un archivo llamado ping.txt con la info en el formato

Código:
2013-06-19 10:47AM. - Respuesta desde 201.248.76.20: bytes=32 tiempo=20ms TTL=59

si lo ejecutas
Código:
ping.exe -t 3
se hará ping cada 3 segundos (o los segundos que establescas luego de "-t") si no especificas nada, hará ping cada 1 segundo (sumado a la espera del ping, me dio pereza corregir eso)

si el ping falla puede decir que "tiempo de espera agotado" o simplemente dejarlo en blanco si el host lo da inaccesible... (tambien me dio pereza corregir eso)

hace ping contra google.com por si a las dudas...

el continua escribiendo el archivo donde lo dejó si lo cierras... espero te sea útil
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
terrateck

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: Script batch para ping
« Respuesta #9 en: 19 Junio 2013, 14:34 pm »

Utiliso el Batch de Meine programmen pero no me guarda los resultados? es porque no hay problema y ningún paquete se pierde?

Saludos.

Efectivamente si no hay ningún problema con la conexión no te generará ningún resultado. Prueba a deshabilitar la conexión a la red mientras se ejecuta y así podrás comprobar que guarda los resultados en el fichero paquetesperdidos.txt.

Desde cmd el comando si que llevaria solo un signo %, pero en un .bat tienes que poner dos para que funcione. Con el comando FOR pasa lo mismo. No se exactamente por qué, pero es así.

Es curioso, gracias por la información.

aquí está

https://mega.co.nz/#!udQhzbIJ!MWfyeSP4ttCjbNdZ3EL8xClyVlp01-c_yRi_4dEo-jA


el crea en la carpeta donde se ejecute un archivo llamado ping.txt con la info en el formato

Código:
2013-06-19 10:47AM. - Respuesta desde 201.248.76.20: bytes=32 tiempo=20ms TTL=59

si lo ejecutas
Código:
ping.exe -t 3
se hará ping cada 3 segundos (o los segundos que establescas luego de "-t") si no especificas nada, hará ping cada 1 segundo (sumado a la espera del ping, me dio pereza corregir eso)

si el ping falla puede decir que "tiempo de espera agotado" o simplemente dejarlo en blanco si el host lo da inaccesible... (tambien me dio pereza corregir eso)

hace ping contra google.com por si a las dudas...

el continua escribiendo el archivo donde lo dejó si lo cierras... espero te sea útil

Gracias engelx. También había pensado hacerlo en C que lo controlo más pero al no ser demasiado complejo pensé que no merecía la pena y esto sería más rápido. De todas formas sería interesante ver como lo implementaste, ¿no tendrás el código por ahí para echarle un vistazo?

Lo suyo es ajustar el tiempo entre pings a la calidad de la conexión, porque sino como dices se te va a llenar el logs de miles de entradas xD.
Yo lo voy a usar porque actualmente tengo microcortes de conexión, y el log del cable router no es demasiado fiable.  Estoy intentando que la operadora lo solucione y esto me es de gran ayuda para diagnosticarlo.
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
script para insertar valores en un formulario (Batch)
Scripting
Slikp 7 9,045 Último mensaje 19 Diciembre 2013, 23:03 pm
por Slikp
(AYUDA) No me funciona el comando PING dentro de un Script .BAT (BATCH)
Scripting
luchinialexis 2 3,582 Último mensaje 9 Diciembre 2014, 18:42 pm
por Eleкtro
Script Para copiar archos Batch « 1 2 »
Scripting
Guille270 10 6,654 Último mensaje 2 Marzo 2015, 19:36 pm
por Guille270
Batch para guardar un registro de cada ping realizado con la hora en una linea « 1 2 »
Scripting
Nucleorion 12 13,255 Último mensaje 14 Mayo 2019, 10:58 am
por Nucleorion
codigo script para hacer ping en php « 1 2 »
Scripting
condorito 15 23,891 Último mensaje 2 Julio 2022, 14:55 pm
por Danielㅤ
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines