40 lines
2.4 KiB
Markdown
40 lines
2.4 KiB
Markdown
# Настройка 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` |