[Peticion] Batch de Notificacion Conexion a Internet

Iniciado por Gigabyte666, 30 Marzo 2008, 12:50 PM

0 Miembros y 2 Visitantes están viendo este tema.

Gigabyte666

Hola a todos, estoy tratando de adentrarme en el mundo del BATCH, y se me ha ocurrido hacer un batch que este ejecutado al momento de caerse la conexion a internet anuncie "No estas conectado a internet", y te avise cuando se reconecte "Te conexion se a restablecido"...

El problema es que trate de empezar

@echo off
ping yahoo.com.mx -t
if


Cuando llegue ahi, no pasaron ni 10 seg cuando me puse a investigar cual seria la condicion para cuando hay respuesta y para cuando no la hay...

Bueno espero que me ayuden... Gracias de antemano :D

Saludos.


leogtz

Hola Gigabyte666, puedes usar el IF ERRORLEVEL para almacenar valores de error
Un Ejemplo en una sola linea :

ping www.youtube.com & if errorlevel 1 (msg * No hay conexion) else (msg * Si hay conexion)
Nota : Si la solicitud de ping no haya el host, el errorlevel lo tomara como valor 1 y se ira a donde dice : No hay conexion.

Otro Ejemplo :
@echo off
cd %windir%\system32
@echo on
ping google.com
@echo off
if errorlevel 1 (goto no) else (goto si)

:no
msg * No estas conectado a Internet
exit

:si
msg * Tu conexion se ha restablecido
exit


Bueno, Adios  :)
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

NadiceJMA

brother, la verdad este codigo esta buen trip, no tenia conocimiento de los mensajes porq aun soy nuevo en el bath, pero bueno gracias, igual por ahora estoy haciendo un aplicacion para cambiar la ip publica de una persona sin usar proxy de una manera super sencilla.....

ZALUDOS

leogtz

Bueno espero les haya servido, yo tambien soy algo nuevo en este lenguaje, y aun me faltan muchisisisimas cosas por aprender...  ;D

Pero bueno...
Adios
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

~[uNd3rc0d3]~

en vez de usar 1 en el error level usa toda la amplitud de errores posibles 1 2 3 4 5 6 7 8 9 9009

haci que mejor

@echo off
cd %windir%\system32
@echo on
ping www.google.com
@echo off
if not %errorlevel%==0 (goto no) else (goto si)

:no
msg * No estas conectado a Internet
exit

:si
msg * Tu conexion se ha restablecido
exit


bueno tambien hay que tener en cuenta que al ping le podes regular las peticiones asi tambien como los tamaños

saludos

leete las reglas asi todos estamos mejor ;)

leogtz


Hola, si claro, tambien lo puedes hacer como dice ~[uNd3rc0d3]
Cita de: ~[uNd3rc0d3]~ en 31 Marzo 2008, 01:58 AM


@echo off
cd %windir%\system32
@echo on
ping www.google.com
@echo off
if not %errorlevel%==0 (goto no) else (goto si)

:no
msg * No estas conectado a Internet
exit

:si
msg * Tu conexion se ha restablecido
exit



Nomas le cambiarias aya arriba el (goto no) por (goto si), antes del Else, ya que dice : if not %errorlevel%==0 (goto no) else (goto si)
Solo estan intercambiadas las etiquetas en el code de ~[uNd3rc0d3]~

Bueno, adios
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

Gigabyte666

Muchisimas gracias compañeros... procedo a probar entonces...

Gracias denuevo por tomarse un tiempo para ayudarme... Ya les digo como me fue

Hendrix

Aqui te dejo una variante que e codeado, algo mas complejo que los codigos que se han peusto pero igual de funcional, lo dejo para que sepan como se usan las pipes en batch y como guardar los resultados de uncomando dentro de una variable.

Código (dos) [Seleccionar]
@echo off
for /f "tokens=*" %%A in ('ping www.google.es -n 1 ^| find /c "agotado"') do set var=%%A
if "%var%"=="0" (echo Hay internet) else (echo No hay internet)
pause


Un Saludo  :)

PD: Mirandolo bien, mi codigo es menos funcional que el vuestro, ya que solo funciona en Windows que esten en español y encima solo en XP por lo del comando Set, pero bueno, hay queda otro metodo mas de obtener si hay conexion en un XP español  ;)
"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián