2.4 KiB
2.4 KiB
Настройка fetch-скрипта на MikroTik для уведомлений в Telegram-бот (локальная сеть)
Внимание! Все примеры рассчитаны на работу внутри одной локальной сети. Внешний доступ, HTTPS и туннели не требуются.
1. Создание скрипта на MikroTik
- Откройте WinBox/WebFig или подключитесь по SSH к вашему MikroTik.
- Перейдите в меню System → Scripts (или /system script в CLI).
- Создайте новый скрипт, например:
- Name: notify-telegram
- Source:
/tool fetch url="http://10.10.10.2:8000/event?type=wifi_connect&mac=$mac&ip=$ip" http-method=get - Замените 10.10.10.2 на внутренний адрес сервера с ботом.
2. Привязка скрипта к событию
DHCP lease (новое подключение по DHCP)
- В разделе IP → DHCP Server → Leases найдите поле "Lease Script" и добавьте:
:if ($leaseBound = true) do={/system script run notify-telegram} - Это вызовет скрипт при каждом новом lease (подключении устройства).
Wi-Fi connect (CAPsMAN)
- Для CAPsMAN можно использовать Scheduler или Event Handler, если требуется.
3. Проверка работы
- Подключите новое устройство к Wi-Fi.
- Проверьте логи MikroTik: появилось ли выполнение скрипта и fetch-запрос.
- Проверьте, что бот получил уведомление (или что сервер принял запрос — можно смотреть логи Flask/FastAPI).
4. Безопасность
- Если сеть полностью изолирована — дополнительных мер не требуется.
- Для production можно добавить секрет в URL (например, ?secret=...)
Пример для нескольких событий
- Можно добавить параметры (например, тип события, имя устройства, VLAN и т.д.)
- Скрипт можно вызывать и вручную для теста:
/system script run notify-telegram