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

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  script bat con ping
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: script bat con ping  (Leído 16,714 veces)
piratava

Desconectado Desconectado

Mensajes: 5


Ver Perfil
script bat con ping
« en: 5 Septiembre 2013, 21:57 pm »

Hola,

Lo he intentado de varias formas y aun no puedo.

Les cuento que tengo un servidor pptp en linux y a veces se desconecta solo y para resumir la conexion hay qye volver a marcar el login.

Ese no es mi problema, lo que necesito que un script en vbs, bat o c que haga un ping constante a la ip del servidor y que si el ping falla X cantidad de veces ejecute un .bat.

Ojala alguien me pueda ayudar.

Dejo el script que hice en .bat para conectar al servidor por si a alguien le sirve

Código:
@echo off

sleep 3
rasdial SERVIDOR /DISCONNECT
sleep 3
rasdial SERVIDOR USUARIO CONTRASEÑA
sleep 7
ROUTE delete x.x.x.x MASK x.x.x.x x.x.x.x
sleep 5
ROUTE -p add x.x.x.x MASK x.x.x.x x.x.x.x
sleep 10
NET USE UNIDAD: /DELETE /YES
sleep 10
NET USE UNIDAD: "\\x.x.x.x\Archivos Server" CONTRASEÑA /USER:USUARIO@DOMINIO /PERSISTENT:no
explorer UNIDAD:


« Última modificación: 5 Septiembre 2013, 22:02 pm por piratava » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.822



Ver Perfil
Re: script bat con ping
« Respuesta #1 en: 5 Septiembre 2013, 23:12 pm »

necesito que un script en vbs, bat o c que haga un ping constante a la ip del servidor y que si el ping falla X cantidad de veces ejecute un .bat.

Código
  1. @Echo OFF
  2.  
  3. Set "IP=1.1.1.1"
  4. Set /A MaxFails=2
  5.  
  6. :Ping
  7. Ping.exe "%IP%" || (Set /A Fails+=1)
  8. If %Fails% EQU %MaxFails% (Goto :OnError)
  9. Goto :Ping
  10.  
  11. :OnError
  12. :: Hacer cosas...
  13. Pause&Exit

Saludos...


En línea

piratava

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: script bat con ping
« Respuesta #2 en: 5 Septiembre 2013, 23:17 pm »

Código
  1. @Echo OFF
  2.  
  3. Set "IP=1.1.1.1"
  4. Set /A MaxFails=2
  5.  
  6. :Ping
  7. Ping.exe "%IP%" || (Set /A Fails+=1)
  8. If %Fails% EQU %MaxFails% (Goto :OnError)
  9. Goto :Ping
  10.  
  11. :OnError
  12. :: Hacer cosas...
  13. Pause&Exit

Saludos...

Funciona bien el codigo gracias!, pero no me ejecuta el ":OnError", por ejemplo para probar le dije que llame a explorer pero no lo hace.

Código:
@Echo OFF

Set "IP=10.0.0.254"
Set /A MaxFails=3

:Ping
Ping.exe "%IP%" || (Set /A Fails+=1)
If %Fails% EQU %MaxFails% (Goto :OnError)
Goto :Ping

:OnError
explorer c:
Pause&Exit



[MOD] NO HAGAS DOBLE POST.

Si funciona, disculpa!!!

Entendi que el MaxFails es a los pings, entonces le puse 2 no pasaba anda, pero es al proceso completo de pings, es decir, los 4 pings erroneos.

Gracias!!
« Última modificación: 6 Septiembre 2013, 00:03 am por EleKtro H@cker » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.822



Ver Perfil
Re: script bat con ping
« Respuesta #3 en: 6 Septiembre 2013, 00:02 am »

Entendi que el MaxFails es a los pings, entonces le puse 2 no pasaba anda, pero es al proceso completo de pings, es decir, los 4 pings erroneos.

Así es,
Si quieres algo más preciso como lo que comentas entonces puedes usar un "FOR /F + FIND" para filtrar la salida del comando Ping.exe para contar los paquetes perdidos.

Saludos
En línea

piratava

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: script bat con ping
« Respuesta #4 en: 6 Septiembre 2013, 00:11 am »

Así es,
Si quieres algo más preciso como lo que comentas entonces puedes usar un "FOR /F + FIND" para filtrar la salida del comando Ping.exe para contar los paquetes perdidos.

Saludos

No, asi esta bien, muchas gracias.

Como puedo mejorar mi script de inicio de pptp? me puedes ayudar con eso? Gracias :)
En línea

piratava

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: script bat con ping
« Respuesta #5 en: 6 Septiembre 2013, 00:49 am »

Tengo el siguiente problema:

Cuando no hay ping, me ejecuta el "ping.bat" sin problemas.

Pero cuando hay ping igual se crea un loop

Te cuento, tengo 2 bat, uno llamado "ping.bat" y el pptp llamado "cgallardo.bat"

Entonces, cuando enciendo el equipo abro "cgallardo.bat"

Código:
@echo off

sleep 3
rasdial SERVIDOR-SANTIAGO /DISCONNECT
sleep 3
rasdial SERVIDOR-SANTIAGO user pass
sleep 7
ROUTE delete 10.0.0.0 MASK 255.255.255.0 192.168.210.0
sleep 5
ROUTE -p add 10.0.0.0 MASK 255.255.255.0 192.168.210.0
sleep 20
NET USE Z: "\\10.0.0.254\Archivos Server" pass /USER:user@dominio /PERSISTENT:no
ping.bat

y conecta sin problemas. Y desde alli llamo a "ping.bat" entonces para que cuando falle vuelva a llamar a "cgallardo.bat" lo deje asi:

Código:
@Echo OFF

Set "IP=10.0.0.254"
Set /A MaxFails=1

:Ping
Ping.exe "%IP%" || (Set /A Fails+=1)
If %Fails% EQU %MaxFails% (Goto :OnError)
Goto :Ping

:OnError
cgallardo.bat

el bat "ping.bat" ejecuta sin problemas, pero a pesar de tener ping vuelve a llamar a "cgallardo.bat" me corta el pptp y lo vuelve a marcar.

Como puedo configurar el parametro FIND para que me lea un texto como "Tiempo de espera agotado para esta solicitud." que es error cuando no hay ping, si se puede configurar asi, seria ideal ya que si detecta ej: 4 ping erroneos llamaria a "cgallardo.bat" y no en otro momento, me puedes ayudar por favor?
« Última modificación: 6 Septiembre 2013, 00:52 am por piratava » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.822



Ver Perfil
Re: script bat con ping
« Respuesta #6 en: 6 Septiembre 2013, 01:56 am »

No se si te he entendido bien pero en el script "ping.bat" debes restaurar el valor de la variable "Fails" a "0" después de llamar a "cgallardo.bat", de lo contrario el resto de pings siempre van a tomarse como fallidos por que el valor de la variable seguirá subiendo constántemente...

Y bueno, sobre lo de filtrar la salida de Ping te cito una respuesta mía en otro post:

Aquí tienes mi solución, es muy sencillo:

Código
  1. @echo off
  2.  
  3. Set "URL=www.google.es"
  4. Set "Interval=5" & REM Segundos
  5. set "LogFile=.\Ping.txt"
  6.  
  7. :PingMe
  8. Set /A "Count+=1"
  9. Echo [+] Haciendo Ping [%Count%]
  10.  
  11. (
  12. ping "%URL%" | FINDSTR "perdidos.=.0$"
  13. ) || (
  14. Echo Paquetes perdidos.
  15. Echo %DATE% %TIME% >> "%LogFile%"
  16. )  
  17.  
  18. Ping "LOCALHOST" -n "%Interval%" 1>NUL | MORE
  19. GoTo :PingMe


Output:
Código:
[+] Haciendo Ping [1]
    Paquetes: enviados = 4, recibidos = 4, perdidos = 0

[+] Haciendo Ping [2]
    Paquetes: enviados = 4, recibidos = 4, perdidos = 0

[+] Haciendo Ping [3]
Paquetes perdidos.

Saludos!

Combínalo con las variables "Fails" y "MaxFails" y ya lo tienes listo.

Saludos
En línea

piratava

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: script bat con ping
« Respuesta #7 en: 8 Septiembre 2013, 18:38 pm »

Estimado,

Trate de hacerlo de varias formas pero soy novato con esto.

Me puedes volver a ayudar por favor? la idea es que detecte cuando no hay ping a una ip, y genere el script de marcado, y una vez que ya este marcado el pptp y vuelva el ping a la ip el proceso de monitoreo vuelva a fucionar.

Gracias! ;-)

En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.822



Ver Perfil
Re: script bat con ping
« Respuesta #8 en: 10 Septiembre 2013, 06:55 am »

Prácticamente te lo he dado todo hecho sin que tengas que hacer ningún esfuerzo mayor,
solo tienes que colocar cada cosa en su sitio, lee un poco sobre el lenguaje para aprender lo básico, o espera la respuesta de algún otro compañero.

Saludos!
En línea

Jimbojones

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: script bat con ping
« Respuesta #9 en: 11 Septiembre 2013, 12:02 pm »

Buenos días.
Estoy enfrascado con un bat.
La idea seria, crear un programa que hiciese un ping continuo a la IP introducida por teclado.
Los resultados del ping, se guardan en un txt, con la fecha y la hora de cada uno de ellos, y al detener el ping, se almacenan en el txt las estadisticas globales de los pings mientras el programa estuvo corriendo.

Esta versión solo me ha planteado 3 pequeños problemas.
1º) Para modificar la IP del ping, tenía que modificarla en el codigo del programa
2º) Para modificar le nombre del txt en el que se guardaba la información tenia que modificar el nombre en el codigo del programa.
3º)Almacenaba la información en la memoria buffer, por lo que si tenia el programa corriendo durante 24 horas, al detenerlo, solo me presentaba las estadisticas globales de los pings de las 24 horas, pero, solo mostraba los ultimos pings.

Código
  1. @echo off
  2.  
  3. for /F "delims=" %%i in ('ping 10.105.253.254 -t') do call :format "%%i"
  4. goto :done
  5.  
  6. :format
  7. echo %date% %time% %1 1>> pinglog.txt
  8. :done
Agradeceria cualquier aporte.
Un saludo,
« Última modificación: 11 Septiembre 2013, 12:25 pm por EleKtro H@cker » En línea

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

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
script bash (ubuntu): Parar un proceso sin salir del script (SOLUCIONADO)
Scripting
moikano→@ 6 11,074 Último mensaje 28 Octubre 2010, 15:48 pm
por moikano→@
Refused to execute a javascript script. Source code of script found within reque
Nivel Web
acoevil 2 4,274 Último mensaje 7 Diciembre 2011, 13:17 pm
por acoevil
[BASH] Ayuda!! comando ping y ejecucion script dentro de un comando
Scripting
H4WK 1 4,809 Último mensaje 1 Junio 2013, 11:18 am
por H4WK
Script batch para ping « 1 2 »
Scripting
terrateck 14 20,778 Último mensaje 20 Junio 2013, 01:04 am
por engel lex
codigo script para hacer ping en php « 1 2 »
Scripting
condorito 15 22,684 Último mensaje 2 Julio 2022, 14:55 pm
por Danielㅤ
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines