Foros del Web » Soporte técnico » Windows »

Crear .bat para determinar si hay conexión a internet.

Estas en el tema de Crear .bat para determinar si hay conexión a internet. en el foro de Windows en Foros del Web. Hola a todos, Tengo un problema con mi repetidor wifi, y es que se bloquea de vez en cuando y tengo que desenchufarlo de la ...
  #1 (permalink)  
Antiguo 29/08/2010, 14:21
 
Fecha de Ingreso: mayo-2009
Mensajes: 23
Antigüedad: 15 años, 6 meses
Puntos: 0
Crear .bat para determinar si hay conexión a internet.

Hola a todos,
Tengo un problema con mi repetidor wifi, y es que se bloquea de vez en cuando y tengo que desenchufarlo de la corriente y volverlo a enchufar. Esto no es un problema si estoy delante del ordenador, pero si dejo descargando algun archivo y se corta, pueden pasar horas hasta que me doy cuenta de que no hay internet.

Cuando se bloquea el repetidor, a veces sale el icono de conexión limitada o nula en la barra de tareas, otras veces no cambia y pone que está conectado, aunque al intentar acceder a una página, esta no carga.

Había pensado programar una tarea para que compruebe si hay internet cada x tiempo (15 minutos por ejemplo) y emita un sonido si no hay, para así poder reconectar el repetidor.
Había pensado hacerlo mediante un archivo ejecutando un archivo .bat con el programador de tareas de windows. El archivo .bat haría ping a un servidor, y en caso de no obtener respuesta haria un echo • (un beep).

¿Conoceis una forma más simple de que me avise con un sonido si se corta la conexión a internet, o no es mala idea? En ese caso, me podrías orientar un poco acerca de cómo crear el .bat?

Hasta ahora he conseguido guardar la respuesta del comando ping en un archivo escribiendo: ping -n 1 www.google.com > respuesta.txt , el problema es que no se como leer el archivo y determinar si la respuesta es que se pudo establecer la conexión o no.

Espero vuestras respuestas.
Salu2
  #2 (permalink)  
Antiguo 30/08/2010, 05:24
Avatar de dogduck  
Fecha de Ingreso: enero-2006
Ubicación: ¿Atlantida, Hesperides, Islas afortunadas?
Mensajes: 2.231
Antigüedad: 18 años, 10 meses
Puntos: 19
Respuesta: Crear .bat para determinar si hay conexión a internet.

Hace un par de años hice algo parecido:

http://www.javcasta.com/2009/07/31/s...ontrol-de-red/

Yo haría (lo hago de memoria sin comprobar errores de sintaxis):
Código bat:
Ver original
  1. @echo off
  2. :inicio
  3. if exist testigo.txt del testigo.txt
  4. set ERRORLEVEL =
  5. ping -n 1 www.google.com > testigo.txt
  6. find /C "La solicitud de ping no pudo encontrar el host" testigo.txt
  7. rem o prueba con
  8. rem find /C "recibidos = 0" testigo.txt
  9. rem si errorlevel = 0  ha encontrado recibidos=0 lo cual indica que no hay conectivida
  10. if %ERRORLEVEL%==0  goto pita
  11.  
  12. rem delay de 15x60sg=900sg
  13. @ping -n 900 127.0.0.1 > null
  14. goto inicio
  15.  
  16. :pita
  17. rem start pita.mp3
  18. type beep.txt
  19. goto inicio

para obtener el beep (sonido) se hace con type beep.txt
y para crear beep.txt, desde consola de dos

c:\> copy con beep.txt
[ presionas ctrl+G ] [ das intro ]
[ presionas ctrl+z ] [ das intro]

y voliá

Salu2

Última edición por dogduck; 30/08/2010 a las 05:36
  #3 (permalink)  
Antiguo 30/08/2010, 06:11
Avatar de dogduck  
Fecha de Ingreso: enero-2006
Ubicación: ¿Atlantida, Hesperides, Islas afortunadas?
Mensajes: 2.231
Antigüedad: 18 años, 10 meses
Puntos: 19
Respuesta: Crear .bat para determinar si hay conexión a internet.

Acabo de hacer la prueba de concepto o demo y me funciona, lo tengo en:

Batch Scripting – bat, cmd: Control de conectividad a host y sonido beep


Salu2
  #4 (permalink)  
Antiguo 30/08/2010, 12:47
 
Fecha de Ingreso: mayo-2009
Mensajes: 23
Antigüedad: 15 años, 6 meses
Puntos: 0
De acuerdo Respuesta: Crear .bat para determinar si hay conexión a internet.

Muchas gracias dogduck, lo he probado y funciona a la perfección.

Unicamente he tenido que hacerle un par de modificaciones, porque cuando se perdía la conexión entraba en un bucle y el procesador se ponía al 100% de uso.
Para solucionarlo he añadido una pausa despues de emitir el 'beep' y también he cambiado dicho pitido por la reproducción de un archivo .mp3, ya que fuera de la habitación del ordenador no se oía bien.

Incluyo el código tal como lo he dejado:

Código bat:
Ver original
  1. @echo off
  2. :inicio
  3. if exist testigo.txt del testigo.txt
  4. set ERRORLEVEL =
  5. ping -n 1 www.google.com > testigo.txt
  6. rem La solicitud de ping no pudo encontrar el host
  7. echo Comprobando conectividad ...
  8. @find /C "La solicitud de ping no pudo encontrar el host" testigo.txt > null
  9. rem find /C "recibidos = 0" testigo.txt
  10.  
  11. rem si errorlevel = 0  ha encontrado recibidos=0 lo cual indica que no hay conectivida
  12. if %ERRORLEVEL%==0  goto pita else goto continua
  13.  
  14. :continua
  15. color 17
  16. echo Si hay conectividad    
  17. rem delay de 10min
  18. @ping -n 600 127.0.0.1 > null
  19. goto inicio
  20.      
  21. :pita
  22. echo No hay conectividad
  23. color cf
  24. rem Ejecuta el programa videoLAN y abre el archivo alarm.mp3 (las rutas pueden variar en cada caso)
  25. start "C:\Program Files\VideoLAN\VLC\vlc.exe" "C:\Alarm.mp3"
  26. rem delay de 5min
  27. @ping -n 300 127.0.0.1 > null
  28. goto inicio

Además, buscando por internet he encontrado otra forma para pausar la ejecución ( choice /c a /d a /t 300 /n ), aunque no se cual es mejor, y creo que choice no funciona en XP.

Salu2
  #5 (permalink)  
Antiguo 30/08/2010, 13:48
Avatar de dogduck  
Fecha de Ingreso: enero-2006
Ubicación: ¿Atlantida, Hesperides, Islas afortunadas?
Mensajes: 2.231
Antigüedad: 18 años, 10 meses
Puntos: 19
Respuesta: Crear .bat para determinar si hay conexión a internet.

Me alegro que te sirviera
Bueno, para eso existe el scripting, para hacerlo al gusto de cada uno.

nota: una pausa, hasta que se apriete una tecla, se hace con el comando pause, lo que tu haces es añadir un delay (retardo o intervalo de tiempo)

Código bat:
Ver original
  1. echo esto es una pausa, para continuar aprieta cualquier tecla
  2. @pause > null

salu2
  #6 (permalink)  
Antiguo 31/08/2010, 01:13
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 16 años, 2 meses
Puntos: 188
Respuesta: Crear .bat para determinar si hay conexión a internet.

En caso de andar apurado también puedes hacer ping desde el cmd a cualquier página web.

Etiquetas: determinar, internet, .bat
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:08.