Consulta: Notificar a Telegram solo MAC de dispositivos que no son mios

Hola gente, saludo desde Argentina, me compre un hEXs Rb760igs, de momento muy conforme con la compra. La consulta es la siguiente, configure para que me envíe notificación a Telegram cuando un dispositivo se conecta a la red, pero me gustaría poder configurar que solo la notificación sea para los dispositivos que no son míos, no se si en algún lado puedo hacer una lista con las MAC de mis dispositivos (son unos 35) y agregarlo al script. Si alguien me da una mano por donde empezar le agradezco
 
A ver si @diamuxin se pasa por aquí y te hecha una mano, que tiene un máster en scripting para mikrotik.

Saludos!
 
Hola gente, saludo desde Argentina, me compre un hEXs Rb760igs, de momento muy conforme con la compra. La consulta es la siguiente, configure para que me envíe notificación a Telegram cuando un dispositivo se conecta a la red, pero me gustaría poder configurar que solo la notificación sea para los dispositivos que no son míos, no se si en algún lado puedo hacer una lista con las MAC de mis dispositivos (son unos 35) y agregarlo al script. Si alguien me da una mano por donde empezar le agradezco
Hola!

Si has seguido el post relacionado con las DHCP Leases: https://www.adslzone.net/foro/mikro...oleccion-scripting.575217/page-2#post-3582237

Puedes probar lo siguiente:

Bash:
# Primero, asegúrate que tus propios dispositivos tengan IP estática, si no...
/ip dhcp-server lease make-static [find where dynamic]

# Ahora reemplaza esta línea de tu script actual:
:if ($leaseBound = 1) do={

# Por esta:
:if ($leaseBound = 1 && [ get [ find where mac-address=$leaseActMAC ] dynamic ] = true) do={

Así te aseguras que sólo con las leases "dinámicas" de nuevos dispositivos ejecutará el módulo de Telegram que estaría dentro de
Código:
do={}

S@lu2.
 
Gracias por la respuesta, estuve probando pero no logro que funcione, a ver si entiendo, yo las IP las fije poniendole en Leases "Make Static" a cada una, también les puse "Make Static" en el ARP.
Luego en DHCP agregue el script:
:if ($leaseBound = "1") do={
global telegramMessage "$leaseActIP - $leaseActMAC - $"lease-hostname""
:execute "Notifica_Telegram";
}
En la parte de Scripts cree el que enlaza a telegram
:global telegramMessage
/tool fetch url="https://api.telegram.org/botXXXXXXXXXX/sendMessage?chat_id=-XXXXXXXXXXXXX&text=$telegramMessage" keep-result=no
:delay 2
Pero si reemplazo la primer linea no hace nada, entiendo que entre los corchetes busca las MAC que tengo fijadas, pero no me doy cuenta....
 
Por eso te puse en el anterior post:
Te aconsejo su lectura, porque mi respuesta va relacionada con ese script en concreto.

En primer lugar, para hacer las direcciones estáticas, te aconsejo que sólo lo hagas desde la ventana DHCP - Leases, pulsando con el botón derecho del ratón sobre la IP que quieres fijar y seleccionando "Make Static", no toques la tabla ARP (IP - ARP) y deja que el router se encargue de su gestión automática.

En segundo lugar, debes de tener el módulo Telegram correctamente configurado en System - Scripts, aunque le llamemos módulo realmente es un script al que llamamos desde otros scripts (como una función).

Por ejemplo, lo podemos llamar MyTGBotSendMessage (este script no requiere permisos) y su contenido sería éste:

Bash:
:local BotToken "XXXXXXXXXX:XXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXXXXX";
:local ChatID "XXXXXXXXX";
:local parseMode "HTML";
:local SendText $MessageText;

/tool fetch url="https://api.telegram.org/bot$BotToken/sendMessage\?chat_id=$ChatID&parse_mode=$parseMode&text=$SendText" keep-result=no;

:log info "Send Telegram message";

En cuanto al Script que debes situar en el campo "Lease Script" dentro de tu DHCP Server:

Bash:
/ip dhcp-server lease
:if ($leaseBound = 1 && [ get [ find where mac-address=$leaseActMAC ] dynamic ] = true) do={
    :do {
        :local DeviceName [/system identity get name];
   
        # START Send Telegram Module
        :local MessageText "\E2\84\B9 $DeviceName: Info DHCP %0D%0A Nombre: $"lease-hostname" \
         %0D%0A IP: $leaseActIP %0D%0A MAC: $leaseActMAC";
        :local SendTelegramMessage [:parse [/system script  get MyTGBotSendMessage source]];
        $SendTelegramMessage MessageText=$MessageText;
        # END Send Telegram Module
   
        :log info "DHCP Info: $"lease-hostname" $leaseActMAC se ha conectado con IP $leaseActIP"
    } on-error={:log error "DHCP Info: Fallo de notificación a Telegram"}
}

Y listo, deberías recibir avisos sólo de los dispositivos que se conecten a tu DHCP y que no tengan aplicado el "make static". Lo he probado en casa y funciona tal cual.

1633515831543.png


S@lu2.
 
Última edición:
No, la verdad debo estar metiendo la pata en algo, cree el script, con el nombre MyTGBotSendMessage y en el DHCP Server pego el que me pasas, pero lo que veo es que el contador de script no avanza, estoy mirando los script que mencionas, el "Versión 2.0" me pone la etiqueta pero no llega a notificar a Telegram
 
No, la verdad debo estar metiendo la pata en algo, cree el script, con el nombre MyTGBotSendMessage y en el DHCP Server pego el que me pasas, pero lo que veo es que el contador de script no avanza, estoy mirando los script que mencionas, el "Versión 2.0" me pone la etiqueta pero no llega a notificar a Telegram
Vale, olvídate ahora del script DHCP y céntrate en que funcione primero Telegram.

¿Te había funcionado antes el Bot de Telegram?
¿Has revisado si el Token y ChatID son correctos?

Crea un nuevo script para probar, llámalo por ejemplo SendMessageToTelegram con los permisos de read, write, policy, test, y mete este contenido:

Bash:
:local DeviceName [/system identity get name];
:local MessageText "\F0\9F\9F\A2 <b>$DeviceName:</b> <i>italic</i>  <code>inline fixed-width code</code> plain text <a href=\"https://mhelp.pro/\">More Scripts</a>";
:local SendTelegramMessage [:parse [/system script  get MyTGBotSendMessage source]];
$SendTelegramMessage MessageText=$MessageText;
:log info "Mensaje Telegram enviado";

Ejecútalo de modo manual, si te funciona, en Telegram debería salir algo así:

1633528544216.png

Además en el Log tendrás un mensaje que está enviado.

Si sigue sin funcionar está claro que deberías probar de nuevo todo el proceso de crear el Bot en Telegram y el ChatID (hay muchos tutoriales en la Red) y trasladar los datos al módulo MyTGBotSendMessage.

Un truco: Si ejecutas el script desde la consola de comandos, en el caso de que falle te dará un mensaje de por dónde puede venir el problema. Por ej.

Código:
/system script run SendMessageToTelegram

Suerte!
 
Última edición:
Por si te puede ayudar, este es el proceso muy resumido de como obtener el Token y ChatID:

1.- Acceder en Telegram para crear el bot, abriremos una conversación con el gestor de bots @BotFather
2.- /start
3.- /newbot (pedirá dos valores: nombre del bot y usuario del bot)
4.- Al finalizar ya tenemos el bot creado y nos dará un mensaje que contiene el Token (guardar a buen recaudo)
5.- Chat ID: tecleamos @RawDataBot, escribimos /start y obtenemos el Chat ID.

S@lu2.
 
Última edición:
Mil gracias, ahi borre todos los scripts, los voli a poner y ahora esta andando, la verdad que no se por que no funciono antes
 

Similar threads

Arriba