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

Re: Проверка IP LTE-интерфейса и отправка его на ddns

Добавлено: 09 окт 2018, 12:24
Chupaka
Синтаксис везде один и тот же, а дальше вы льёте воду, которая не проясняет ситуацию. Давайте конкретику: что именно и куда добавляете? У пользователя именно этот профиль указан?

Re: Проверка IP LTE-интерфейса и отправка его на ddns

Добавлено: 09 окт 2018, 13:12
Vita077
Да, именно этот. В скрипте просто меняю caller-id на $"caller-id", пробовал еще за find name= ставить $"user". Ставлю в секцию On во вкладку script PPP-профиля.

Re: Проверка IP LTE-интерфейса и отправка его на ddns

Добавлено: 09 окт 2018, 13:18
Chupaka
Если всё именно так, как вы пишете - то и не должно работать. Приводите конкретный код, а то мы тут непонятно что обсуждаем. И вставляйте его в сообщения, я не в файлы на сторонних сайтах, по которым невозможно искать нормально.

Re: Проверка IP LTE-интерфейса и отправка его на ddns

Добавлено: 09 окт 2018, 13:49
Vita077
Хорошо, постараюсь без словоблудия. Имеем скрипт, благодаря вам, который прекрасно отрабатывает в Scheduler, но не отрабатывает в профиле РРР при подключении vpn-клиента. Что в нем изменить, чтобы он заработал в профиле? Сам скрипт:

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

# Параметры подключения к NO-IP.com
:local ddnsuser "userlogin"
:local ddnspass "userpass"
:local ddnshostname "ddnshostname" 
:local ddnsinterface "<vpninterfacename>"

# Описание глобальных переменных
:global ddnslastip
:local str
:local ddnsip
:local ip

:if ([ :typeof $ddnslastip ] = nil ) do={ :global ddnslastip "0" }

:local ddnsip [/ppp active get [find name="vpnclientlogin"] caller-id]

:if ([ :typeof $ddnsip ] = nil ) do={
   :log info ("ServiceDNS: No ip address on $ddnsinterface .")
} else={

# Из полученного на интерфейсе IP адреса исключаем маску
   :for i from=( [:len $ddnsip] - 1) to=0 do={ 
      :if ( [:pick $ddnsip $i] = "/") do={ 
       :set ddnsip [:pick $ddnsip 0 $i];
      } 
   }

  :if ($ddnsip != $ddnslastip) do={

    :log info ("ServiceDNS: $ddnshostname -> $ddnsip")

# Отправляем новый IP адрес на сервис No-IP с помощью HTTP запроса
    :local str "/nic/update?hostname=$ddnshostname&myip=$ddnsip"
    /tool fetch url="http://dynupdate.no-ip.com/$str" mode=http user=$ddnsuser password=$ddnspass \ dst-path=("/ServiceDNS.".$ddnshostname)
    :delay 1 

# Сохраняем результаты в лог файлах
    :local str [/file find name="ServiceDNS.$ddnshostname"];
    :log info [/file get $str contents];
    /file remove $str
    :global ddnslastip $ddnsip

  } 

}

Re: Проверка IP LTE-интерфейса и отправка его на ddns

Добавлено: 09 окт 2018, 14:42
Chupaka

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

:local ddnsip $"caller-id"

Re: Проверка IP LTE-интерфейса и отправка его на ddns

Добавлено: 09 окт 2018, 18:29
Vita077
Увы, нет. Ладно, давайте оставим, чувствую Вам уже это поднадоело. Оставлю в Scheduler, работает и ладно. Благодарю, реально очень помогли! Всего доброго!

Re: Проверка IP LTE-интерфейса и отправка его на ddns

Добавлено: 10 окт 2018, 08:14
Chupaka
Ну, если захотите поколупаться — начните со скрипта-пустышки вроде

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

:log info $"caller-id"
Заработает (исключить проблемы с профилем) — тогда в основной скрипт натыкать побольше :log-команд, чтобы видеть, в какой момент что-то пошло не так, и дальше уже по месту разбираться.