mikrotik-bot/instructions/mt_fetch_script.md

2.4 KiB
Raw Permalink Blame History

Настройка fetch-скрипта на MikroTik для уведомлений в Telegram-бот (локальная сеть)

Внимание! Все примеры рассчитаны на работу внутри одной локальной сети. Внешний доступ, HTTPS и туннели не требуются.

1. Создание скрипта на MikroTik

  1. Откройте WinBox/WebFig или подключитесь по SSH к вашему MikroTik.
  2. Перейдите в меню System → Scripts (или /system script в CLI).
  3. Создайте новый скрипт, например:
    • 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