Script que nos envía un correo cuando cambia nuestra IP pública

Quiero compartir un pequeño script en Bash que nos informa por correo que nuestra IP ha cambiado y nos manda la dirección de la nueva IP.

Si sois lectores asiduos del blog, hace unas semanas adquirí una Raspberry Pi que corre un openSUSE Tumbleweed en su interior.

Mi Raspberry Pi está corriendo algunos servicios que decidí instalar y probar. Publica contenido de blogs que me interesan en mi cuenta de GNUsocial y también de Diaspora, me mantiene siempre conectado a los canales IRC que me interesan, y alguna cosilla más.

Para algunos de los servicios que corre mi Raspberry Pi, no importa que tenga una dirección IP dinámica y esta cambie de vez en cuando, pero para otras opciones, es necesario saber cuando mi proveedor de internet cambia la dirección IP y cual es la nueva dirección IP que me ha adjudicado.

Sí, ya sé que existen servicios que solucionan este problema y adjudican un dominio a una IP, y cuando nuestra dirección IP cambia, se actualiza en sus servicios y nuestro dominio sigue siendo accesible.

Pero en todo caso, me apetecía saber cuando ha cambiado mi dirección IP y también me gustaría recibir una notificación con la nueva dirección IP que tiene mi conexión a internet.

Para ello, busque por la red un script que me pudiera enviar un correo cuando mi dirección de IP cambiase y me enviara la nueva dirección IP al correo.

En la web StackOverflow había varias opciones, y alguna no terminaba de funcionar como quería. Así que de varias propuestas, recogí lo que me gustaba he hice una que hacía lo que quería. No recuerdo qué partes cogí de quien, por tanto no pueda dar el reconocimiento debido… pero gracias a todas aquellas personas que escriben código y lo ofrecen libremente.

Bueno, al lío. Previamente al script hay que configurar nuestro sistema para poder enviar un correo electrónico desde la línea de comandos con el comando mail. Para eso os dejo este tutorial que escribí hace tiempo:

Instalada la herramienta mail y configurada correctamente sólo nos queda echar un vistazo al código del sencillo script. Para copiar y ver el script lo podéis hacer desde mis «snippets» en GitLab en este enlace:

En resumen lo que hace es conseguir la dirección IP, y si es distinta a la dirección que había se envía un correo a la dirección especificada y se guarda un registro en un archivo de texto. Al inicio hay que configurar la dirección de donde guardamos el script.

Creamos en un directorio un archivo por ejemplo:

touch miip.sh

Le damos permisos de ejecución:

chmod +x miip.sh

Después de eso, creamos una tarea de cron que se ejecute de manera cíclica para que se ejecute el script de manera regular, por ejemplo cada media hora, aunque podemos aumentar la frecuencia que queremos que se ejecute.

Con eso ya estaría en marcha todo. Cuando nuestro proveedor de internet nos cambié nuestra dirección IP, el script nos enviará un correo con la nueva dirección y se guardará un registro en un archivo de texto.

Espero que pueda resultaros interesante para algunos de vuestros proyectos.

—————————————————–

8 comentarios sobre “Script que nos envía un correo cuando cambia nuestra IP pública

  1. buenas victorhack ! muy muy util, yo cuando usaba la pi al exterior lo usaba con nsupdate.info como reverso Dns apuntando a un dominio como victorhack.nsupdate.info
    si no lo has probado te aconsejo que lo pruebes 😛

    1. Hola!
      Si me lo aconsejaron por gnusocial y lo estoy probando. Lo que no se es cómo apuntar a una ip:puerto específico…
      Gracias por aportar en los comentarios 😉

  2. En la línea EXT_IP_FILE=»/home/victorhck/scripts/ipactual» tu directorio personal lo puedes cambiar por el símbolo ‘~’ (EXT_IP_FILE=»~/scripts/ipactual») Y si el usuario con que estás en rpi tiene un correo asociado lo puedes sacar de USER_MAIL=»/var/spool/mail/$USER y así valdría para cualquiera sin tener que modificarlo en cada usuario.

    1. Hola!
      Sep, lo que comentas de /~ sí lo había pensado, pero bueno, por vagancia lo dejé así 🙂
      Lo otro no lo sabía! 😉
      Pues dicho queda! Muchas gracias por los aportes y por enriquecer el artículo con mejoras!!
      Saludos y gracias!! 🙂

      1. De nada, alguna vez he tenido que usar el correo del usuario y me ha tocado buescar como sacarlo de manera automática.

  3. muy muy util. Ha sido seguir un par de pasos copiar, pegar, cambiar lo que correspondía en el script y funcionando…. Gracias.

Me gustaría saber tu opinión. Deja un comentario (Puedes usar MarkDown)

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. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.