Enviar un mensaje en Telegram cuando cambie tu IP pública

Veamos cómo podemos enviar un mensaje mediante un bot de Telegram cuando cambie la IP pública de nuestro router en casa

Ilustración: Antolin

Hace un tiempo escribí una entrada en el blog sobre cómo mandar un correo electrónico cuando cambie la dirección IP pública de nuestro router casero.

En aquel caso había una tarea cron que ejecutaba de manera periódica un pequeño script en bash que monitorizaba la dirección de nuestra dirección IP pública en el router casero y enviaba un correo electrónico cuando la IP cambiaba.

En este caso vamos a tener una tarea cron en un equipo que esté siempre encendido, por ejemplo una Raspberry Pi, que tengamos como servidor y ejecutará un script en Python.

El script enviará un mensaje de Telegram, mediante un bot que deberemos crear, cuando cambie nuestra dirección IP, así podemos monitorizar el cambio.

Lo primero que vamos a hacer es crear un bot en Telegram para que el script en Python pueda pasarle el texto a mostrar cuando la dirección IP cambia.

Para crear el bot, utilizaremos el asistente para crear bots en Telegram llamado @BotFather, donde nos pedirá el nombre de nuestro bot, una pequeña descripción.

Podremos configurarlo mucho más, pero para empezar y para lo que lo vamos a usar, con eso será más que suficiente.

Al crearlo, nos proporcionará un token API, que es una secuencia de números y letras, que deberemos copiar y tener guardado en un sitio seguro.

Ese token lo deberemos pegar en el script de Python en la parte superior donde pone token, para que quede algo similar a esto:

token = "bot0123456789:AbCdEfGhjhlU8AVw3VE4293aV1c70R"

Ahora también deberemos enviar un mensaje al bot para abrir una conversación desde la cuenta del usuario que queremos que reciba las notificaciones de cambio de IP.

Ahora deberemos obtener el ID de la conversación, para eso podemos hacerlo con un bot existente llamada @get_id_bot. Escribimos eso en la conversación con nuestro bot y se mostrará una serie de números que son la ID de la conversación:

Copiaremos también ese número y lo pegaremos en el script de Python:

chatID = 4221111234

Como complemento a todo este proceso de crear un bot, Lorenzo Carbonell aka Atareao, ha escrito una serie de artículos para sacarle todo el jugo a esto de los bots en Telegram, empezado por lo básico. Echa un vistazo en este enlace:

Ahora vamos a descargar el script en cuestión y complementarlo con los datos de token e ID necesarios y propios de nuestro caso.

El script está alojado en un repositorio de GitHub yo lo he modificado un poco para que muestre los textos en español. Para descargarlo podemos hacerlo mediante:

wget https://raw.githubusercontent.com/PJR1988/IP_Reporter_bot-/main/IPbot.py

Lo hacemos ejecutable mediante:

chmod +x IPbot.py

Ahora en nuestro equipo deberemos tener instalado Python y deberemos instalar el paquete necesario mediante:

pip3 install requests

Creamos una tarea cron para que ejecute nuestro script de manera automática, digamos que cada 5 minutos, quedando tal que así (cambiando la ruta a tus necesidades):

# Envía un mensaje a Telegram mediante un bot
*/5 * * * * /usr/bin/python3 /home/victorhck/Scripts/IPbot.py

Y con eso ya estaría. Yo lo tengo configurado en mi Raspberry Pi que está funcionando todo el día. Si lo quieres probar, puedes hacerlo ejecutándolo en tu equipo y ver si funciona.

El script crea una carpeta oculta llamada .IP y dentro un archivo llamado IP.txt donde guarda la IP antigua. Obtiene la nueva y la compara con esa.

Si son distintas actualiza el archivo con la nueva dirección y envía el mensaje mediante el bot. Si la dirección no cambia, simplemente no hace nada.

Si quieres probar si funciona, puedes editar el archivo .IP/IP.txt modificar manualmente la IP almacenada y guardar los cambios. Al ejecutarse el script, y ver que son distintos datos enviará el mensaje.

Gracias al usuario Pablo que fue quién creó el código y me enteré gracias a que lo compartió en el canal de Telegram Linux y Tapas.

Sirva este pequeño y sencillo ejemplo como introducción a los bots de Telegram y para empezar a «cacharrear» con ellos.

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 )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. 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.