Envía notificaciones si hay cambios en el servidor DHCP Mikrotik

2024-06-10

Este script envía una notificación de Telegram o mensaje de correo electrónico cuando haya un cambio en el servidor DHCP, enviando su dirección MAC y la IP asignada.

Además si al dispositivo le hemos asignado una dirección IP estática y le hemos añadido un comentario, también lo enviara

A diferencia de los demás scripts vistos hasta ahora, este código ha de introducirse en el campo Script dentro de cada servidor DHCP que deseemos auditar

⚠️ La presente publicación se ha realizado sobre un router Mikrotik AX³3 y la versión 7.11.2 de RouterOS

Agradecer a los usuarios @diamuxin, @Mikroberto y @Otro+ de foros Adslzone por el desarrollo de este script.

🗨️ Recuerda que para que este script funcione tienes que tener bien configurado el correo electrónico en RouterOS y haber creado previamente el modulo MyTGBotSendMessage para Telegram

Como he escrito antes debemos de ir al menu IP -> DHCP Servers y hacemos doble clic el servidor DHCP al que vamos a añadir el script

En la pestaña Script en el campo Lease Script introducidos el siguiente código

/ip dhcp-server lease
:if ($leaseBound = 1) do={
    :do {
        # Variables
        :cmdline local Comment [/ip dhcp-server lease get value-name=comment number=[/ip dhcp-server lease find address=$leaseActIP]]
        :local interFace [/interface/wifiwave2/registration-table get [find where mac-address=$leaseActMAC] interface]


        # START Send Email
        /tool e-mail send to="[email protected]" from="Router R1" subject="\F0\9F\9A\80 $DeviceName Info DHCP" body="IP: $leaseActIP \nMAC: $leaseActMAC\nNombre: $"lease-hostname"\nRadio: $interFace \nComentario: $Comment"
        # END Send Email

        # START Send Telegram Module
        :local MessageText "\E2\84\B9 <b>R1: Info DHCP</b> %0D%0A Nombre: $"lease-hostname" %0D%0A IP: $leaseActIP %0D%0A MAC: $leaseActMAC %0D%0A Radio: $interFace %0D%0A Comentario: $Comment";
        :local SendTelegramMessage [:parse [/system script get MyTGBotSendMessage source]];
        $SendTelegramMessage MessageText=$MessageText;
        # END Send Telegram Module

        :log info "Enviada alerta DHCP de $"lease-hostname" $leaseActMAC"
    } on-error={:log error "Fallo de notificación a Telegram"}
}

Si tenemos varios servidores DHCP repetiremos el paso anterior en cada uno de ellos.

Ahora cada vez que un nuevo dispositivo se conecte a uno de los servidores a los que le hemos añadido el script, no enviara una notificación


Ingrese la dirección de su instancia