Удаленное Включение Скриптов Микротика Из Telegram

На эту реализацию меня подтолкнул Александр Корюкин GeXoGeN с его публикацией» Удаленно включите компьютер бесплатно, без СМС и без облаков, с помощью Микротика ".

И комментарий в одной из групп ВК Кирилла Казакова:

Да, это совсем не безопасно.

Я бы предпочел написать телеграм-бота, который принимает команды активации только от моего аккаунта.

Я решил написать такого бота.

Итак, первое, что вам нужно сделать, это создать бота в телеграмме.

  • Находим в поиске аккаунт с именем @botfather
  • Нажмите кнопку «Пуск» в нижней части экрана.

  • Затем пишем ему команду /newbot
Тогда мы ответим на 2 простых вопроса:
  • Первый вопрос - имя создаваемого бота МойМикротикРОутер
  • Второй вопрос - никнейм создаваемого бота (должен заканчиваться на bot) MikrotikROuter_bot
В ответ мы получим токен нашего бота, в моем случае это: Используйте этот токен для доступа к HTTP API: 265373548:AAFyGCqJCei9mvcxvXOWBfnjSt1p3sX1XH4

Удаленное включение скриптов Микротика из Telegram

Затем вам нужно найти нашего бота в поиске по названию.

@MikrotikROuter_bo t и нажмите кнопку «Пуск».

После этого вам необходимо открыть браузер и ввести следующую строку:

  
  
  
  
  
  
   

https://api.telegram.org/botXXXXXXXXXXXXXXXXXX/getUpdates

Где XXXXXXXXXXXXXXXXXX — токен вашего бота.

Откроется страница, подобная следующей:

Удаленное включение скриптов Микротика из Telegram

Находим на нем следующий текст: "чат":{"id": 631290 , Итак, у нас есть вся необходимая информация для написания скриптов для Микротика, а именно: Токен бота: 265373548:AAFyGCqJCei9mvcxvXOWBfnjSt1p3sX1XH4 Идентификатор чата, куда ему следует написать: 631290 Для проверки мы можем зайти через браузер:

https://api.telegram.org/bot265373548:AAFyGCqJCei9mvcxvXOWBfnjSt1p3sX1XH4/sendmessageЭchat_id=631290&text=test

Вы должны получить результат:

Удаленное включение скриптов Микротика из Telegram

Для нашего удобства сразу добавим команды для бота: Поиск учетной записи по имени @botfather Затем пишем ему команду /setcommands

  • Он спросит, какой бот
Мы пишем: @MikrotikROuter_bot Добавление команд:
  • Привет, мир< — Test message on chat 1
  • itworking — Тестовое сообщение в чате 2
  • wolmypc - разбуди мой компьютер
Теперь, если вы наберете «/» в чате, вы должны получить:

Удаленное включение скриптов Микротика из Telegram

Теперь перейдем к МикроТику.

В RouterOS есть консольная утилита для копирования файлов по ftp или http/https, утилита называется fetch, ею мы и воспользуемся.

Открытие Терминал и введите:

/tool fetch url=" https://api.telegram.org/bot265373548:AAFyGCqJCei9mvcxvXOWBfnjSt1p3sX1XH4/sendmessage\Эchat_id=631290&text=test " keep-result=no

Обратите внимание, что требуется MikroTik" \ «чтобы избежать знака» ? " в URL-адресе.

Вы должны получить результат:

Удаленное включение скриптов Микротика из Telegram

Теперь перейдем к скриптам: Привет, мир

system script add name="helloworld" policy=read source={/tool fetch url=" https://api.telegram.org/bot265373548:AAFyGCqJCei9mvcxvXOWBfnjSt1p3sX1XH4/sendmessage\Эchat_id=631290&text=Hello,world ! " keep-result=no}

работает

system script add name="itsworking" policy=read source={/tool fetch url=" https://api.telegram.org/bot265373548:AAFyGCqJCei9mvcxvXOWBfnjSt1p3sX1XH4/sendmessage\Эchat_id=631290&text=Test OK, it's Working " keep-result=no}

wolmypc

system script add name="wolmypc" policy=read source="/tool wol mac= XX:XX:XX:XX:XX:XX interface=ifname\r\ \n/tool fetch url=\" https://api.telegram.org/boXXXXXXXXXXXXXXXXXXX\\Эchat_id=631290&text=wol OK\" keep-resul\ t=no"

Не забудьте указать правильный mac и имя интерфейса, а также бот-токен и чат_id. Теперь немного объясню, что они делают: Скрипт «helloworld» отправляет сообщение: «Привет, мир!» в наш чат с ботом.

Скрипт «itsworking» отправляет сообщение: «Тест ОК, все работает!» в наш чат с ботом.

Эти скрипты предназначены для демонстрации работы.

Я добавил скрипт «wolmypc» как одну из возможных реализаций.

Как только скрипт будет завершен, бот напишет в чат «wol OK».

Фактически вы можете запустить абсолютно любой скрипт.

Создайте задачу:

Telegram.src

/system scheduler add interval=30s name=Telegram on-event=":tool fetch url=(\" https://api.telegr\ am.org/\".

\$botID.\"/getUpdates\ ") ;\r\ \n:global content [/file get [/file find name=getUpdates] contents] ;\r\ \n:global startLoc 0;\r\ \n:global endLoc 0;\r\ \n\r\ \n:if ( [/file get [/file find name=getUpdates] size] > 50 ) do={\r\ \n\r\ \n:set startLoc [:find \$content \"update_id\" \$lastEnd ] ;\r\ \n:set startLoc ( \$startLoc + 11 ) ;\r\ \n:local endLoc [:find \$content \",\" \$startLoc] ;\r\ \n:local messageId ([:pick \$content \$startLoc \$endLoc] + (1));\r\ \n:put [\$messageId] ;\r\ \n:#log info message=\"updateID \$messageId\" ;\r\ \n\r\ \n:set startLoc [:find \$content \"text\" \$lastEnd ] ;\r\ \n:set startLoc ( \$startLoc + 7 ) ;\r\ \n:local endLoc [:find \$content \",\" (\$startLoc)] ;\r\ \n:set endLoc ( \$endLoc - 1 ) ;\r\ \n:local message [:pick \$content (\$startLoc + 2) \$endLoc] ;\r\ \n:put [\$message] ;\r\ \n:#log info message=\"message \$message \";\r\ \n\r\ \n:set startLoc [:find \$content \"chat\" \$lastEnd ] ;\r\ \n:set startLoc ( \$startLoc + 12 ) ;\r\ \n:local endLoc [:find \$content \",\" \$startLoc] ;\r\ \n:local chatId ([:pick \$content \$startLoc \$endLoc]);\r\ \n:put [\$chatId] ;\r\ \n:#log info message=\"chatID \$chatId \";\r\ \n\r\ \n:if ((\$chatId = \$myChatID) and (:put [/system script find name=\$messa\ ge] != \"\")) do={\r\ \n:system script run \$message} else={:tool fetch url=(\" https://api.teleg\ ram.org/\".

\$botID.\"/sendmessage\\\Эchat_id=\".

\$chatId.\"&text=I can't t\ alk with you. \") keep-result=no} ;\r\ \n:tool fetch url=(\" https://api.telegram.org/\".

\$botID.\"/getUpdates\\\?\ offset=\$messageId\") keep-result=no; \r\ \n} \r\ \n" policy=\ ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ start-date=nov/02/2010 start-time=00:00:00

Теги: #Сетевые технологии #Системное администрирование #mikrotik #скрипт #telegram боты

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.