Ростелеком. Проверка на серый IP

Здесь выкладываем скрипты
Правила форума
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
Sertik
Сообщения: 1598
Зарегистрирован: 15 сен 2017, 09:03

Ну хоть как-то так оформите, а то вообще не читабельно было и не защищено от ошибок.
Комментарии убрал, и так всё понятно.

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

:local netRange 10.0.0.0/8
:local PpoeIntName "pppoe"
:local pingAdrcheck 8.8.8.8
:local pingNum 3
:global currentIP
:global newIP [/ip address get [find interface=$PpoeIntName] address]
     :if (![:any $newIP]) do={:error "pppoe интерфейс отсутствует или не имеет адреса"}
     :if ($newIP in $netRange) do={
                  /interface pppoe-client disable $PpoeIntName;
                  :delay 1;
                  /interface pppoe-client enable $PpoeIntName;
         } else={
                               :if ($newIP != $currentIP) do={
                                      :local chekping [/ping $pingAdrcheck count=$pingNum]
                                            :if ($chekping != 0) do={
                                          :do {
                                                    [/tool e-mail send to=you-mail@ya.ru subject=$newIP]
                                                } on-error={:log error "отправка на почту не прошла" }
                                          :do {
                                                    [/tool fetch url="https://api.telegram.org/bot**********: ... ext=$newIP"];
                                               } on-error={:log error "в Телеграмм ничего не отправлено" }
                                       :set currentIP $newIP;}
     }
  }


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
Crazyk1
Сообщения: 2
Зарегистрирован: 05 фев 2022, 10:53

Подскажите что делает эта строка?
С ней у меня скрипт не работает, пришлось удалить :ne_vi_del:

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

:if (![:any $newIP]) do={:error "pppoe интерфейс отсутствует или не имеет адреса"}


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

Команда :any проверяет переменную на "непустость"


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