mikrotik no-ip 域名解析脚本

/system script
add name=UpdateDDNS_No-IP owner=admin policy=\
    ftp,reboot,read,write,policy,test,password,sniff,sensitive source="#\A9w\
    \B8q no.ip \AC\DB\C3\F6\B3]\A9w\A1A\A5H\A4U\A6\DB\A6\E6\AD\D7\A7\EF\A1G\r\
    \n#============================================================\r\
    \n:local DDNSUser \"wangba\"\r\
    \n:local DDNSPassword \"z1233\"\r\
    \n:local DDNSHost \"wangba.no-ip.org\"\r\
    \n#============================================================\r\
    \n \r\
    \n#\A5H\A4U\B5{\A6\A1\A6p\A4\A3\A4F\B8\D1\A1A\AB\D8\C4\B3\A4\A3\ADn\AD\D7\
    \A7\EF\A1G\r\
    \n#-----------------------------------------------------------------------\
    -------------------\r\
    \n#\A9w\B8q IP \C5\DC\BC\C6\r\
    \n:local DDNSIP\r\
    \n:global DDNSLastIP\r\
    \n \r\
    \n#\A9w\B8q\C5\DC\BC\C6\B9w\B3]\AD\C8\r\
    \n:if ([ :typeof \$DDNSLastIP ] = nil ) do={ \$DDNSLastIP \"0.0.0.0\" }\r\
    \n \r\
    \n#\A7Q\A5\CEHTTP\ACd\B8\DFPublic IP\r\
    \n/tool fetch address=checkip.dyndns.com src-path=/ mode=http dst-path=(\"\
    PublicIP\");\r\
    \n:delay 1;\r\
    \n#\C5\AA\A8\FA\C0\C9\AE\D7\r\
    \n:set DDNSIP [/file get PublicIP contents];\r\
    \n:set DDNSIP [:pick \$DDNSIP 0 [:find \$DDNSIP \"</body>\"]];\r\
    \n:set DDNSIP [:pick \$DDNSIP ([:find \$DDNSIP \":\"]+2) 100];\r\
    \n#\A7R\B0\A3\C0\C9\AE\D7\r\
    \n/file remove PublicIP;\r\
    \n \r\
    \n#\A7P\C2_\ACO\A7_\ADn\A7\F3\B7s IP\r\
    \n:if ([ :typeof \$DDNSIP ] = nil ) do={\r\
    \n    :log error (\"DDNS no.ip\A1G \BA\F4\B8\F4\A5\BC\A8\FA\B1o IP \A6\EC\
    \A7}\")\r\
    \n} else={\r\
    \n    :if (\$DDNSIP != \$DDNSLastIP) do={\r\
    \n#       \A7\F3\B7s DDNS IP\r\
    \n        :local url \"/nic/update\?hostname=\$DDNSHost&myip=\$DDNSIP\"\r\
    \n        /tool fetch address=dynupdate.no-ip.com src-path=\$url mode=http\
    \_user=\$DDNSUser password=\$DDNSPassword dst-path=(\"DDNS_no_ip\")\r\
    \n        :delay 1\r\
    \n \r\
    \n#       \C0\C9\AE\D7\A4\BA\AEe\r\
    \n        :local filestr [ /file get \"DDNS_no_ip\" contents];\r\
    \n \r\
    \n#       \A7R\B0\A3\C0\C9\AE\D7\r\
    \n        :local filename [ /file find name=\"DDNS_no_ip\"];\r\
    \n        /file remove \$filename\r\
    \n \r\
    \n#       \C5\DC\A7\F3\ACO\A7_\A6\A8\A5\\\r\
    \n        :if ( [ :find \$filestr \"good\"] = \"0\" || [ :find \$filestr \
    \"nochg\"] = \"0\" ) do={\r\
    \n            :log warning (\"DDNS no.ip\A1G \BA\F4\B8\F4\A7\F3\B7s IP \A6\
    \EC\A7} \" . \$DDNSIP)\r\
    \n            :set DDNSLastIP \$DDNSIP\r\
    \n        } else={\r\
    \n            :log error (\"DDNS no.ip\A1G \BA\F4\B8\F4\A7\F3\B7s IP \A6\
    \EC\A7}\A5\A2\B1\D1 \" . \$DDNSIP)\r\
    \n        }\r\
    \n    }\r\
    \n}\r\
    \n#-----------------------------------------------------------------------\
    -------------------"fetch