Страница 1 из 3

Не работает обновление DDNS no-ip

Добавлено: 20 янв 2014, 21:56
vomus
Добрый вечер!
Есть подключение по PPPoE, настраиваю обновление DDNS в no-ip.com. Нашел простой скрипт вида:

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

##############Script Settings##################

:local NOIPUser "no-ip.com LOGIN"
:local NOIPPass "no-ip.com PASSWORD"
:local WANInter "MikroTik Router WAN Interface Name"

###############################################

:local NOIPDomain "$NOIPUser.no-ip.org"
:local IpCurrent [/ip address get [find interface=$WANInter] address];
:for i from=( [:len $IpCurrent] - 1) to=0 do={
  :if ( [:pick $IpCurrent $i] = "/") do={
    :local NewIP [:pick $IpCurrent 0 $i];
    :if ([:resolve $NOIPDomain] != $NewIP) do={
      /tool fetch mode=http user=$NOIPUser password=$NOIPPass url="http://dynupdate.no-ip.com/nic/update\3Fhostname=$NOIPDomain&myip=$NewIP" keep-result=no
      :log info "NO-IP Update: $NOIPDomain - $NewIP"
     }
   }
}

Прикрутил свои параметры, запустил. В ответ - ноль эмоций, обновления не происходит. Попробовал из командной строки обновить wget'ом - проблем нет, все обновляется. В скрипте попробовал немного поменять синтаксис и написал

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

/tool fetch mode=http url="http://$NOIPuser:$NOIPPass@dynupdate.no-ip.com/nic/update\3Fhostname=$NOIPDomain&myip=$NewIP" keep-result=no"

но без разницы. Повставлял всякие промежуточные печати в лог - скрипт отрабатывает нормально, кроме собственно /tool fetch. Может кто-нибудь подскажет, в чем дело? RouterOS 6.5.

Re: Не работает обновление DDNS no-ip

Добавлено: 20 янв 2014, 22:19
simpl3x
скопируйте текст скрипта и пихните его в консоль.
на первый взгляд, local надо заменить на global, потом уж сами там дебажте свой код.

Re: Не работает обновление DDNS no-ip

Добавлено: 20 янв 2014, 22:42
vomus
simpl3x писал(а):скопируйте текст скрипта и пихните его в консоль.
на первый взгляд, local надо заменить на global, потом уж сами там дебажте свой код.


Доеду завтра до рутера - проверю, но это вроде как считается рабочим скриптом, взятым с wiki.mikrotik.ru :du_ma_et:

Re: Не работает обновление DDNS no-ip

Добавлено: 21 янв 2014, 00:25
simpl3x
vomus писал(а):
simpl3x писал(а):скопируйте текст скрипта и пихните его в консоль.
на первый взгляд, local надо заменить на global, потом уж сами там дебажте свой код.


Доеду завтра до рутера - проверю, но это вроде как считается рабочим скриптом, взятым с wiki.mikrotik.ru :du_ma_et:

Ну он мог быть написан 100 лет тому назад. Самый простой способ проверить работоспособнгсть скрипта - пихнуть его в консоль. Если ругаться не будет, значит рабочий :) ну если результат достигнут

Re: Не работает обновление DDNS no-ip

Добавлено: 21 янв 2014, 03:26
vqd
Лучше так
Систем скрипт ран имя_вашего_скрипта

Сразу покажет где косяки

Re: Не работает обновление DDNS no-ip

Добавлено: 21 янв 2014, 08:09
simpl3x
ну в случае, когда ты его так запускаешь, то да, он тебе выведет ошибку, НО когда его пихаешь в консоль, он тебе подкрашивает красным, те момент которые ему не нравятся.

Re: Не работает обновление DDNS no-ip

Добавлено: 21 янв 2014, 09:17
vqd
Так удобно синтаксис проверять но не работу скрипта в целом. Например если переменные объявленные как Local, а не global

Re: Не работает обновление DDNS no-ip

Добавлено: 21 янв 2014, 10:27
podarok66
Ну, с локальными проблем не будет, если взять скрипт в {}, тогда получится, что в консоли выполнится весь скрипт, как одна команда.

Re: Не работает обновление DDNS no-ip

Добавлено: 21 янв 2014, 14:21
vomus
Совсем прикольно:

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

[vomus@MikroTik] > /system script run 1
[vomus@MikroTik] >

И ничего не меняется! Даже в логе не вижу вывод :log. Копирую скрипт в консоль - подсвечивается первый символ после кавычки в :log info (см. скриншот). Это как понимать? Вбил просто :log info "Test". Работает. С обратным слэшом поставил $. Все равно подсвечивает красным. Убрал вообще переменные, запустил "/system script run 1", на консоле "connecting" и больше ничего.

Re: Не работает обновление DDNS no-ip

Добавлено: 21 янв 2014, 14:41
simpl3x
а точно vomus1.no-ip.org существует?

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

nslookup: can't resolve 'vomus1.no-ip.org'