Страница 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
Re: Проверка IP LTE-интерфейса и отправка его на ddns
Добавлено: 09 окт 2018, 18:29
Vita077
Увы, нет. Ладно, давайте оставим, чувствую Вам уже это поднадоело. Оставлю в Scheduler, работает и ладно. Благодарю, реально очень помогли! Всего доброго!
Re: Проверка IP LTE-интерфейса и отправка его на ddns
Добавлено: 10 окт 2018, 08:14
Chupaka
Ну, если захотите поколупаться — начните со скрипта-пустышки вроде
Заработает (исключить проблемы с профилем) — тогда в основной скрипт натыкать побольше :log-команд, чтобы видеть, в какой момент что-то пошло не так, и дальше уже по месту разбираться.