Простой скрипт отправки в телеграм изменившегося wan адреса

Здесь выкладываем скрипты
Правила форума
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
Evghenii
Сообщения: 6
Зарегистрирован: 05 июн 2018, 17:34

Код: Выделить всё

:global routername [/system resource get board-name]
:global sendToTele "https://api.telegram.org/botxxxxxxxxxx:yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy/sendmessage\?chat_id=zzzzzzzzzzz&text=";
:global oldIP
:global newIP [:resolve myip.opendns.com server=208.67.222.222];

if ($newIP=$oldIP) do={} else={
/tool fetch url="$sendToTele $routername%0Aold IP:$oldIP %F0%9F%8C%8D - new IP:$newIP %f0%9f%8c%8f" keep-result=no} 

set oldIP $newIP
скрипт в шедулер на выполнение как часто необходимо


remvord
Сообщения: 2
Зарегистрирован: 06 июл 2018, 07:36

Что нужно писать вместо всех этих xxxxxxxx yyyyyyyyy zzzzzzx?


Evghenii
Сообщения: 6
Зарегистрирован: 05 июн 2018, 17:34

id token бота и chat id


remvord
Сообщения: 2
Зарегистрирован: 06 июл 2018, 07:36

ok
можете прояснить где мы определили переменную oldIP как mikrotik понимает какой ip сейчас на wan?


Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Третья строка - заявка на использование переменной в скрипте, так сказать. (Если переменная имеет значение, оно и будет, если переменной не существует, значит появится пустая)
Последняя строка - переменной присваивается новое значение.
Четвертая строка - объявление переменной, значение которой будет внешний адрес Тика.
Рекомендую использовать знаки препинания, мы же не пятиклассники в школьном чате...


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
dimk__o
Сообщения: 1
Зарегистрирован: 10 янв 2022, 03:59

Evghenii писал(а): 05 июн 2018, 17:40

Код: Выделить всё

:global newIP [:resolve myip.opendns.com server=208.67.222.222];
Сервер отваливается
Лучше взять вариант https://forum.mikrotik.com/viewtopic.ph ... 80#p785164

Код: Выделить всё

# get the current IP address from the internet (in case of double-nat)
/tool fetch mode=http address="checkip.dyndns.org" src-path="/" dst-path="/dyndns.checkip.html"
:local result [/file get dyndns.checkip.html contents]
# parse the current IP result
:local resultLen [:len $result]
:local startLoc [:find $result ": " -1]
:set startLoc ($startLoc + 2)
:local endLoc [:find $result "</body>" -1]
:global newIP [:pick $result $startLoc $endLoc]


bing90
Сообщения: 2
Зарегистрирован: 24 янв 2022, 11:35

Evghenii писал(а): 05 июн 2018, 17:40

Код: Выделить всё

:global routername [/system resource get board-name]
:global sendToTele "https://api.telegram.org/botxxxxxxxxxx:yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy/sendmessage\?chat_id=zzzzzzzzzzz&text=";
:global oldIP
:global newIP [:resolve myip.opendns.com server=208.67.222.222];

if ($newIP=$oldIP) do={} else={
/tool fetch url="$sendToTele $routername%0Aold IP:$oldIP %F0%9F%8C%8D - new IP:$newIP %f0%9f%8c%8f" keep-result=no} 

set oldIP $newIP
скрипт в шедулер на выполнение как часто необходимо
а где хранится oldIP, когда скрипт не выполняется? Я почему-то думал, переменные живут только в скрипте и пока он запущен.


Аватара пользователя
Virtue
Сообщения: 142
Зарегистрирован: 07 мар 2014, 10:17

bing90 писал(а): 24 янв 2022, 11:47 а где хранится oldIP, когда скрипт не выполняется? Я почему-то думал, переменные живут только в скрипте и пока он запущен.
вы говорите про локальные переменные, а еще бывают глобальные


bing90
Сообщения: 2
Зарегистрирован: 24 янв 2022, 11:35

Virtue писал(а): 24 янв 2022, 13:22
bing90 писал(а): 24 янв 2022, 11:47 а где хранится oldIP, когда скрипт не выполняется? Я почему-то думал, переменные живут только в скрипте и пока он запущен.
вы говорите про локальные переменные, а еще бывают глобальные
Я всего пару дней начинаю дружить с микротиками, поэтому у меня столько вопросов :smu:sche_nie:
1 Где хранятся глобальные переменные?
2 Как посмотреть список всех глобальных переменных, которые сейчас есть на роутере?
3 Нужно периодически подчищать переменные, которые я создал, чтобы не засорять память? Если да, то как это делать?

(если есть какая-то полезная статья, то буду рад ссылке :-): )


Sertik
Сообщения: 1598
Зарегистрирован: 15 сен 2017, 09:03



фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
Ответить