Привет! Мой первый пост здесь, и я тоже новичок в Router OS. Я использую Dynu для динамического DNS, чтобы иметь возможность подключаться к устройствам в моей сети, у которых динамический IP на WAN. Dynu предоставляет этот скрипт, но когда я его загружаю, появляются ошибки. Может, кто-то тут заметит явные проблемы с синтаксисом? Заранее спасибо за помощь.
/system script add name=Dynu policy=read,write,test source=":global ddnsuser your_Dynu_username :global ddnspass “your_Dynu_password” :global theinterface “WAN_Interface_Name” :global ddnshost “your_Dynu_hostname” :global ipddns [:resolve $ddnshost]; :global ipfresh [ /ip address get [/ip address find interface=$theinterface ] address ] :if ([ :typeof $ipfresh ] = nil ) do={ :log info (“DynuDDNS: No IP address on $theinterface .”) } else={ :for i from=( [:len $ipfresh] - 1) to=0 do={ :if ( [:pick $ipfresh $i] = “/”) do={ :set ipfresh [:pick $ipfresh 0 $i]; } } :if ($ipddns != $ipfresh) do={ :log info (“DynuDDNS: IP-Dynu = $ipddns”) :log info (“DynuDDNS: IP-Fresh = $ipfresh”) :log info “DynuDDNS: Update IP needed, Sending UPDATE…!” :global str “/nic/update?hostname=$ddnshost&myip=$ipfresh” /tool fetch address=api.dynu.com src-path=$str mode=http user=$ddnsuser password=$ddnspass dst-path=(”/Dynu.".$ddnshost) :delay 1 :global str [/file find name=“Dynu.$ddnshost”]; /file remove $str :global ipddns $ipfresh :log info “DynuDDNS: IP updated to $ipfresh!” } else={ :log info “DynuDDNS: dont need changes”; } }
/system script add name=Dynu policy=read,write,test source=":global ddnsuser your_Dynu_username :global ddnspass “your_Dynu_password” :global theinterface “WAN_Interface_Name” :global ddnshost “your_Dynu_hostname” :global ipddns [:resolve $ddnshost]; :global ipfresh [ /ip address get [/ip address find interface=$theinterface ] address ] :if ([ :typeof $ipfresh ] = nil ) do={ :log info (“DynuDDNS: No IP address on $theinterface .”) } else={ :for i from=( [:len $ipfresh] - 1) to=0 do={ :if ( [:pick $ipfresh $i] = “/”) do={ :set ipfresh [:pick $ipfresh 0 $i]; } } :if ($ipddns != $ipfresh) do={ :log info (“DynuDDNS: IP-Dynu = $ipddns”) :log info (“DynuDDNS: IP-Fresh = $ipfresh”) :log info “DynuDDNS: Update IP needed, Sending UPDATE…!” :global str “/nic/update?hostname=$ddnshost&myip=$ipfresh” /tool fetch address=api.dynu.com src-path=$str mode=http user=$ddnsuser password=$ddnspass dst-path=(”/Dynu.".$ddnshost) :delay 1 :global str [/file find name=“Dynu.$ddnshost”]; /file remove $str :global ipddns $ipfresh :log info “DynuDDNS: IP updated to $ipfresh!” } else={ :log info “DynuDDNS: dont need changes”; } }
