08:59
Mikrotik, оповещение о подключении к Internet

Сделал оповещение о подключении к Internet роутера Mikrotik с отправкой сообщения о полученном при коннекте IP адресе в Telegram.

Может быть актуально для тех, кто не хочет покупать статический IP, но замутить что-то внутри своей сети хочется. А для доступа с улицы нужно знать внешний IP.

Сначала нужно сделать своего бота в Telegram. Через него будут отправляться сообщения с роутера в группу Telegram.

1. Ищем в Telegram аккаунт с именем @botfather и в чате нажимаем кнопку "Start"

2. Пишем ему команду /newbot

3. На задаваемые вопросы вопросы придумываем и пишем сначала название бота, а затем его ник (должен заканчиваться на bot)

 

4. Ищем бота по имени @Ник_вашего_бота и нажимаем на "Start", чтобы запустить его.

5. Создаём групповой чат в Telegram ("Меню" - "Создать группу"). В группу бот будет слать сообщения

6. Приглашаем бота в группу

7. Ввести в чате группы команду /join @Ник_вашего_бота

8. В браузере в адресную строку вставляем: https://api.telegram.org/botXXXXXXX/getUpdates (вместо XXXXXXX подставляем токен бота, на скрине выделен рамкой)

9. В браузере появится страница типа такой:

10. Ищем в тексте что-то типа chat”:{“id”:-175202495 ИД групповых чатов начинаются с минуса, этот id нам и нужен

С Telegram закончили. Получили токен бота и id чата. Переходим к настройке Mikrotik.

Подключаемся к нему и сначала напишем скрипты для событий отключение и подключение интерфейса.

Скрипт на отключение, назвал if_down  и прописал в события "On Down".

:global timedown
:global disconn
:local time [/sys clock get time]
:local urladdr
:if ($disconn != true) do={
:set $timedown $time
:set $disconn true
}

Скрипт тупо запоминает в глобальную переменную timedown время, когда отпал интерфейс. Если время вам не интересно, то можете скрипт не делать и не прописывать в события "On Down".

Скрипт на подключение, назвал if_up и прописал в события "On Up".

:global timedown
:global disconn

:delay 5000ms
:local newIP [:pick [/ip address get [find interface ="pppoe-out1"] address] 0 20]
/tool fetch url="https://api.telegram.org/bot806xxxx44:AAGYhbIxxxxxphIq7HKBcM/sendMessage?chat_id=-4781xxxx19&text=Inet $newIP is reconnected. Disconnected at $timedown"

:set $disconn false
/log warning "Inet $newIP is reconnected. Disconnected at $timedown"

Зелёным шрифтом проставляется время из скрипта отключения if_down. Если эта информация не нужна, то просто удалите зелень. Delay 5000ms - задержка после установки коннекта. У меня без этой паузы пыталось отправить раньше, чем появлялся интернет и соответственно не работало. Красным - токен вашего бота и id чата. Синим - название интерфейса (смотрим ниже на правом скрине). Охра - запись в лог, если не нужно, то уберите эту строку.

И вот вам картинки куда это прописать и как:

Вот что получилось в результате (смотрим последнее сообщение):

 

Категория: Железо | Просмотров: 42 | Добавил: Gonzales115 | Рейтинг: 0.0/0
Всего комментариев: 0
avatar
close