ramzes83 Приведённый скрипт у меня не работает, так же как и в вики, немного переделал и получил это:
Код: /system script
add name=dyndns_update policy=\
ftp,reboot,read,write,policy,test,winbox,sniff,sensitive source="# Set nee\
ded variables\r\
\n:local username \"логин\"\r\
\n:local password \"пароль\"\r\
\n:local hostname \"nohostset\"\r\
\n:global systemname [/system identity get name]\r\
\n\r\
\n:if (\$systemname = \"MikroTik\" ) do= {\r\
\n:set hostname \"имя.dyndns.org,имя.homeip.net\"\r\
\n}\r\
\n\r\
\n\r\
\n:global dyndnsForce\r\
\n:global previousIP\r\
\n\r\
\n# print some debug info\r\
\n## :log info (\"UpdateDynDNS: username = \$username\")\r\
\n## :log info (\"UpdateDynDNS: password = \$password\")\r\
\n## :log info (\"UpdateDynDNS: hostname = \$hostname\")\r\
\n## :log info (\"UpdateDynDNS: previousIP = \$previousIP\")\r\
\n\r\
\n# get the current IP address from the internet (in case of double-nat)\r\
\n/tool fetch mode=http address=\"checkip.dyndns.org\" src-path=\"/\" dst-\
path=\"/dyndns.checkip.html\"\r\
\n:local result [/file get dyndns.checkip.html contents]\r\
\n\r\
\n# parse the current IP result\r\
\n:local resultLen [:len \$result]\r\
\n:local startLoc [:find \$result \": \" -1]\r\
\n:set startLoc (\$startLoc + 2)\r\
\n:local endLoc [:find \$result \"</body>\" -1]\r\
\n:local currentIP [:pick \$result \$startLoc \$endLoc]\r\
\n## :log info \"UpdateDynDNS: currentIP = \$currentIP\"\r\
\n\r\
\n# Remove the # on next line to force an update every single time - usefu\
l for debugging,\r\
\n# but you could end up getting blacklisted by DynDNS!\r\
\n\r\
\n#:set dyndnsForce true\r\
\n\r\
\n# Determine if dyndns update is needed\r\
\n# more dyndns updater request details available at
http://www.dyndns.com\ /developers/specs/syntax.html\r\
\n:if ((\$currentIP != \$previousIP) || (\$dyndnsForce = true)) do={\r\
\n :set dyndnsForce false\r\
\n :set previousIP \$currentIP\r\
\n /tool fetch user=\$username password=\$password mode=http address=\"\
members.dyndns.org\" src-path=\"/nic/update\?hostname=\$hostname&myip=\$cu\
rrentIP\" dst-path=\"/dyndns.txt\"\r\
\n :local result [/file get dyndns.txt contents]\r\
\n## :log info (\"UpdateDynDNS: Dyndns update needed\")\r\
\n :log info (\"UpdateDynDNS: Dyndns Update Result: \".\$result)\r\
\n :put (\"Dyndns Update Result: \".\$result)\r\
\n} else={\r\
\n## :log info (\"UpdateDynDNS: No dyndns update needed\")\r\
\n}"