Страница 2 из 2

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

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

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

: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;}
     }
  }

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

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

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

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

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

Добавлено: 06 мар 2023, 11:27
Sertik
Команда :any проверяет переменную на "непустость"