Script que avisa del cambio de IP dinámica

La mayoría de conexiones domésticas tienen una IP dinámica (suministrada por el proveedor de servicios de internet o ISP), con lo que si nuestra IP cambia, no podremos seguir accediendo a nuestra red local desde Internet hasta que sepamos la nueva IP. Si el router lo permite, soluciones como easydnsn.org nos permiten acceder a nuestra red local través de nombre (por ejemplo minombre.easydns.org), ya que cuando la IP dinámica cambia, el router envía una actualización con la nueva IP a los servidores easydns.org. Lamentablemente, no todos los routers tienen esta opción, por lo que necesitaremos tener constancia de la IP nueva en caso de que nuestro ISP nos la cambie.


El siguiente script, comprueba la IP dinámica asignada, y si es diferente a la que tenía registrada, envía un e-mail avisando de la nueva IP. Asumo que la máquina es capaz de enviar e-mails, si no habrá que configurarla.
Instalamos curl (se puede hacer también con ping -R, pero es más rápida esta solución):

$ sudo apt-get install curl

Comprobamos que recibimos la IP pública:

$ curl ifconfig.me

Creamos nuestro script:

$ sudo vi /root/notify-ip 

#!/bin/bash 
email=miemail@gmail.com
if [ ! -e /tmp/ip ]; then
  curl -s ifconfig.me > /tmp/ip
fi
curl -s http://checkip.dyndns.org/ | grep Address | awk '{ print $6 }' | awk 'BEGIN { FS="<" } {print $1 }'> /tmp/ip2 
curl -s ifconfig.me > /tmp/ip2
newip=$(diff /tmp/ip /tmp/ip2 | wc -l) 
if [ $newip -gt 0 ]; then 
  mv -f /tmp/ip2 /tmp/ip
  mail -s "Tu IP dinámica ha cambiado" $email < /tmp/ip
  # cp -rf /tmp/ip /home/usuario/Dropbox/ip
else 
  rm /tmp/ip2 
fi

Permitimos la ejecución del script:

$ chmod +x /root/notify-ip


Y lo agregamos al crontab de root para que se ejecute cada hora:

$ sudo su

# crontab -e
0 * * * * /root/notify-ip

Si nuestro problema es que nuestra máquina no es capaz de enviar e-mails, también podemos recuperar la IP pública utizando por ejemplo Dropbox:
  

Cambiamos la linea mail por:

cp -f /tmp/ip /home/usuario/Dropbox/ip

Y siempre tendremos un fichero llamado “ip” con nuestra IP actualizada, accesible desde cualquier ordenador con Dropbox.

Anuncios

5 Responses to “Script que avisa del cambio de IP dinámica”


  1. 1 Manuel 23 Oct 2012 en 21:36

    Aqui hay otro que hice

    #!/bin/bash
    #actualizar la ip dinamica en el servicio openDNS

    # verifico si existe el archivo ip_publica.txt
    if [ -e ip_publica.txt ]; then
    #si existe el archivo, jalo el contenido del archivo en una variable (antigua ip publica)
    cIpAnt=$(cat ip_publica.txt | sed -n ‘1 p’)
    #creo nuevamente el archivo de la ip publica con la ip mas reciente
    #curl ifconfig.me
    wget -qO- ifconfig.me/ip > ip_publica.txt
    #jalo el valor de la ip nueva a otra varible
    cIpNew=$(cat ip_publica.txt | sed -n ‘1 p’)
    if [ $cIpAnt != $cIpNew ]; then
    #la ip anterior y la ip nueva no son iguales, actualizo opendns
    wget -O – -q –http-user=mava1981@terra.com –http-passwd=microchip https://updates.opendns.com/nic/update
    fi
    else
    #si el archivo no existe, lo creo guardando la ip publica en el archivo
    #curl ifconfig.me
    wget -qO- ifconfig.me/ip > ip_publica.txt
    fi

  2. 3 Matias Colli 8 Abr 2013 en 14:42

    El man de curl:
    -s/–silent
    Silent or quiet mode. Don’t show progress meter or error mes-
    sages. Makes Curl mute.
    Hay que tener en cuenta que el curl ifconfig.me no siempre es la opción más rápida.
    Sldos,
    Matias Colli

  3. 4 Andrés 24 May 2016 en 18:10

    Estimados, pueden dejar el scrip como archivo para probarlo?

    • 5 tatxem 24 May 2016 en 20:31

      Puedes generar tú mismo el archivo con un editor y copiando pegando el texto del script que hay en el post. En el ejemplo se usa VIM. Un saludo


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s




La Máquina Diferencial en Twitter

Add to Technorati Favorites
Creative Commons License
Esta obra está bajo una licencia de Creative Commons

Archivos

Wikio – Top Blogs – Linux

Introduce tu dirección de email para suscribirte al blog y recibir notificaciones de nuevos posts en tu email.

Únete a otros 394 seguidores


A %d blogueros les gusta esto: