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