MikroTik Scripts: notificación cuando cambia la dirección IP externa del enrutador

Notificación cuando cambia la dirección IP externa del enrutador MikroTik. Envío de un mensaje por correo electrónico o Telegram.

El script crea una variable global CurrentIP para almacenar la dirección IP externa actual del enrutador MikroTik.

El script usa la API del servicio ipify.org para obtener una dirección IP externa.

Para enviar un mensaje de correo electrónico, use la función: Scripts MikroTik: Envío de notificaciones y archivos por correo electrónico (función)

Para enviar un mensaje de Telegram, se utiliza la función: MikroTik Scripts: Enviar un mensaje a Telegram (función)

Ejemplo de una notificación por correo electrónico de un cambio en la dirección IP externa
Ejemplo de una notificación por correo electrónico de un cambio en la dirección IP externa

Artículo en otros idiomas:
?? – MikroTik Scripts: Notification when the external IP address of the router changes
?? – MikroTik Скрипты: Уведомление при изменении внешнего IP адреса роутера
?? – Scripts MikroTik: Notification lorsque l’adresse IP externe du routeur change
?? – MikroTik-Skripte: Benachrichtigung, wenn sich die externe IP-Adresse des Routers ändert
?? – MikroTik-scripts: Melding wanneer het externe IP-adres van de router verandert

Crear guión

[System] -> [Scripts] -> [+] -> [Name: CheckChangeExternalAdress] -> [Policy: read, write, policy, test]

Código de secuencia de comandos

:global CurrentIP;
:local NewIP ([/tool fetch url=http://api.ipify.org/ as-value output=user] -> "data")

:if ($NewIP != $CurrentIP) do={
    # Variables
    :local Time [/system clock get time];
    :local Date [/system clock get date];
    :local DeviceName [/system identity get name];
    :local Text "New IP: $NewIP, Previous IP: $CurrentIP";
    :set CurrentIP $NewIP;

    # START Send Telegram Module
    :local MessageText "\F0\9F\9F\A2 <b>$DeviceName: External IP address has changed.</b> $Text";
    :local SendTelegramMessage [:parse [/system script  get MyTGBotSendMessage source]]; 
    $SendTelegramMessage MessageText=$MessageText;
    #END Send Telegram Module

    # START Send Email Module
    :local SendTo "test@mhelp.pro";
    :local Subject "\F0\9F\9F\A2 INFO: $DeviceName [$Date $Time] External IP address has changed.";
    :local MessageText $Text;
    :local FileName "";
    :local SendEmail [:parse [/system script get SendEmailFunction source]];
    $SendEmail SendTo=$SendTo TextMail=$MessageText Subject=$Subject FileName=$FileName;
    # END Send Email Module
};

Agregar script al programador MikroTik

Para que la secuencia de comandos funcione, debe establecer los siguientes permisos: read, write, policy, test.

[System] -> [Schedule] -> [+] -> [Name: CheckChangeExternalAdress] - > [Interval: 00:05:00] -> [Policy: read, write, policy, test]

Código de secuencia de comandos:

/system script run CheckChangeExternalAdress;
MicroTik Script Notification when the external IP address of the router changes

? En este artículo se discutió la notificación del script Mikrotik sobre el cambio de la dirección IP externa del enrutador. Espero que ahora el cambio de la dirección IP externa del dispositivo MikroTik no sea inesperado. Sin embargo, si tiene algún problema durante la configuración, no dude en escribir en los comentarios. Trataré de ayudar.

Se verifica el script: hAP ac lite [RouterBOARD 952Ui-5ac2nD], RouterOS 6.47.8 (estable).

Deja un comentario