guardar en variable conexion internet

Temas sobre programación ( php, c, sql, html, perl, python, ruby, java, bash, etc ) y recursos ( herramientas, frameworks, hosting, cms, etc )

Moderadores: akodo, maiku

Responder
hibione
Forista Nuevo
Forista Nuevo
Mensajes: 4
Registrado: Mié Jul 20, 2016 10:53 am

guardar en variable conexion internet

Mensaje por hibione » Mié Jul 20, 2016 11:10 am

Hola,

Os escribo a ver si pueden ayudarme a solventar una duda.

Estoy creando un script, el cual básicamente, ejecuta la acción de reproducir unos audios y lleva a cabo la acción de unos "mirrors" a través de Lftp.

El tema es que a la hora de poder ejecutar estas acciones o no, quiero condicionarlo a través de unas variables. Una de estas variables sería la conexión o no a Internet. Poniendo en el caso de que si hay Internet, me entre a ejecutar la acción (reproductor) y si no la hay (conexión) me ejecute otros comandos.

Hay algún comando que pueda darme esta información y que pueda guardarla en la variable?

Estuve probando con "ping" bajo mi red local, y he podido observar que me dice cuando estoy conectado (recibiendo datos) y cuando no. Pero no se como podría utilizar esta info para usar como condicionante.

Espero puedan ayudarme y si necesitan más información, háganmelo saber.

Saludos y gracias de antemano.
Avatar de Usuario
neurus
Forista Legendario
Forista Legendario
Mensajes: 1807
Registrado: Dom Oct 10, 2004 7:00 am

Re: guardar en variable conexion internet

Mensaje por neurus » Mié Jul 20, 2016 1:56 pm

Código: Seleccionar todo

if ping -n1 http://www.pagina.com; then $VARIABLE==si; else $VARIABLE==no;fi
También podría ser

Código: Seleccionar todo

if ping -n1 pagina.com > $VARIABLE; then ... etc.
Esto sin saber nada de lo que pretendes hacer. Lo lógico serían if anidados:

Código: Seleccionar todo

if hay conexión; then
  if es luna llena; then
     if me da la gana; then
     hacer algo;
     fi
   fi
fi
hibione
Forista Nuevo
Forista Nuevo
Mensajes: 4
Registrado: Mié Jul 20, 2016 10:53 am

Re: guardar en variable conexion internet

Mensaje por hibione » Mié Jul 20, 2016 4:08 pm

neurus escribió:

Código: Seleccionar todo

if ping -n1 http://www.pagina.com; then $VARIABLE==si; else $VARIABLE==no;fi
También podría ser

Código: Seleccionar todo

if ping -n1 pagina.com > $VARIABLE; then ... etc.
Esto sin saber nada de lo que pretendes hacer. Lo lógico serían if anidados:

Código: Seleccionar todo

if hay conexión; then
  if es luna llena; then
     if me da la gana; then
     hacer algo;
     fi
   fi
fi
Hola neurus y gracias por contestar,

He puesto el ejemplo del comando ping, porque es de lo poquito que conozco en base a información de redes/gestión en el terminal de Linux. No se si existe algún otro comando o utilidad que pueda emplear para lo que busco.

Lo que necesito saber es en que momento esta mi maquina conectada a Internet y en que momento no, para recoger esa información dentro de una variable y poder "jugar" con ella. O sea, cuando mi red o ip local se conecta o desconecta con el exterior.

Sobre el tema de condicionantes (if,while,..) lo tengo más claro. Pero hasta que no tenga el resultado de esta variable, los condiconantes para ejecutar ordenes no podrán hacerme nada. ](*,)

Gracias y un saludo.
Avatar de Usuario
hmg79
Forista Legendario
Forista Legendario
Mensajes: 2211
Registrado: Lun Mar 31, 2008 8:00 am

Re: guardar en variable conexion internet

Mensaje por hmg79 » Mié Jul 20, 2016 4:51 pm

Probaste lo que coloco neurus????, mira que ahi esta la solución
Avatar de Usuario
neurus
Forista Legendario
Forista Legendario
Mensajes: 1807
Registrado: Dom Oct 10, 2004 7:00 am

Re: guardar en variable conexion internet

Mensaje por neurus » Mié Jul 20, 2016 5:12 pm

No entiendo cuál es el problema.

Lo que sí noté, es que escribí mal la opción del comando ping. Es

Código: Seleccionar todo

ping -c 1 www.pagina.com 
Por lo demás, realmente no sé qué esperas. Te respondí cómo enviarlo a una variable y, si como dices tienes claro el tema condicionales, entonces no deberías tener inconvenientes usando el resultado de cualquier comando que requiera estar conectado a la web, como variable en función de la cual tomar una decisión.

Al ya mencionado ping -c 1 www.pagina.com, puedes agregar curl, wget (el parámetro -quiet simplemente chequea que la página exista y sea accesible, sin descargar nada), y ya en plan de matar moscas a cañonazos, está netcat.
La ventaja de algo como wget --quiet etc, es que si la página existe la va a detectar (si el servicio es otro, no). En cambio, ping podría fallar si el servidor está configurado para no responderlo.

Si lo que hace falta es un aviso de conexión, vas a tener que recurrir a un bucle while. A menos que quieras modificar los scripts del sistema para que hagan algo al conectarse.
Con un cat /var/log/daemon.log|grep renewal obtienes día y horario de conexión.

En cualquier caso, me parece que lo más simple es un ping o wget --quiet dentro de un bucle while con una pausa (sleep) de algunos segundos o minutos. De nuevo, no veo el problema, puesto que dices que tienes claro el tema bucles.

Pero si tu respuesta vuelve a ser algo así como "no me sale", sin especificar nada, ni decir nada concreto, difícilmente recibas alguna ayuda.
hibione
Forista Nuevo
Forista Nuevo
Mensajes: 4
Registrado: Mié Jul 20, 2016 10:53 am

Re: guardar en variable conexion internet

Mensaje por hibione » Mié Jul 20, 2016 5:53 pm

Hola de nuevo,

Lo siento no si me he explicado bien o han faltado datos, el vagaje en el mundo Linux es reciente.El tema es que probé el comando que me enviaste

Código: Seleccionar todo

ping -n1 http://www.pagina.com
y no me devolvió nada.
He probado con la nueva opción

Código: Seleccionar todo

ping -c 1 www.pagina.com 
Esta si me ha funcionado y me ha devuelto

Código: Seleccionar todo

ping -c 1 192.168.1.37
PING 192.168.1.37 (192.168.1.37) 56(84) bytes of data.
64 bytes from 192.168.1.37: icmp_seq=1 ttl=64 time=0.050 ms

--- 192.168.1.37 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.050/0.050/0.050/0.000 ms
y cuando estoy sin conexión recoge:

Código: Seleccionar todo

ping -c 1 192.168.1.37
connect: Network is unreachable
Por la información que me diste al principio, ya tengo más o menos claro como utilizar esta info en mis variables de cara a utilizar los condicionantes y comandos.
El te dijera eso de "no me sale nada". se debía al error del primer comando que me enviaste. Pero esa única duda esta resuelta gracias a la opción que me diste en este último comentario.

Gracias y un saludo.
Avatar de Usuario
doc
Forista Ancestral
Forista Ancestral
Mensajes: 3303
Registrado: Mié Ago 11, 2010 10:32 am
Ubicación: Oviedo-es_ES
Contactar:

Re: guardar en variable conexion internet

Mensaje por doc » Mié Jul 20, 2016 6:17 pm

Claro, lo de 'ping -c 1 http://www.página.com' solo era un ejemplo. Pon http://www.google.com (por ejemplo)
Avatar de Usuario
neurus
Forista Legendario
Forista Legendario
Mensajes: 1807
Registrado: Dom Oct 10, 2004 7:00 am

Re: guardar en variable conexion internet

Mensaje por neurus » Mié Jul 20, 2016 6:53 pm

La cuestión es que de todos modos, no es indispensable guardar el resultado en una variable, independientemente de que pueda servirte por "organización mental".

Un condicional tal que:

if ping -c 1 192.168.1.37; then "algo"; else otra cosa;fi

funcionaría perfectamente.
hibione
Forista Nuevo
Forista Nuevo
Mensajes: 4
Registrado: Mié Jul 20, 2016 10:53 am

Re: guardar en variable conexion internet

Mensaje por hibione » Mié Jul 20, 2016 7:36 pm

Ya.

Pero la verdad es que, como tu dices, la "organización mental" me sirve de mucho.

Si no me pierdo bastante
Responder
  • Similar Topics
    Respuestas
    Vistas
    Último mensaje