dyndns 에 2개의 hostname 을 등록했을때 2개 모두 업데이트 하도록 하는 스크립트를 만들어 봤습니다.
:local username "<dyndns id>";:local password "<dyndns password>";:local hostname { "first"="<dyndns hostname1>"; "second"="<dyndns hostname2>" }:local inetinterface "ether1-gateway";:local sysdate [/system clock get date];:local systime [/system clock get time];:local sysname [/system identity get name];:local dyndnsForce;:set dyndnsForce false;# Print debug info#:log info ("DynDNS: username = $username");#:log info ("DynDNS: password = $password");#:log info ("DynDNS: hostname1 = $hostname->first");#:log info ("DynDNS: hostname2 = $hostname->second");# Check if WAN interface is running:if ([/interface get $inetinterface value-name=running]) do={# Get the current IP on the WAN interface:local currentIP [/ip address get [find interface="$inetinterface" disabled=no] address];# Strip the net mask off the IP address:set currentIP [:pick $currentIP 0 [:find $currentIP "/"]];:log info ("DynDNS: current WAN IP = $currentIP");# do loop for all hostname:foreach key,value in=$hostname do={# Get resolved IP for hostname:local resolvedIP [:resolve domain-name=$value server=8.8.8.8];:log info ("DynDNS: resolved IP for $value = $resolvedIP");# Determine if dyndns update is needed# Dyndns updater request details http://dyn.com/support/developers/api/perform-update/:if (($currentIP != $resolvedIP) || ($dyndnsForce = true)) do={:set dyndnsForce false;/tool fetch user=$username password=$password url="http://members.dyndns.org/nic/update\?hostname=$value&myip=$currentIP&wildcard=NOCHG&mx=NOCHG&backmx=NOCHG" dst-path="/dyndns.txt";:delay 1;:local result [/file get dyndns.txt contents]:log info ("DynDNS: update needed for $value"):log info ("DynDNS: update result for $value = ".$result)} else={:log info ("DynDNS: no update needed for $value");}# end of loop for all hostname}# if WAN interface is not running} else={:log info ("DynDNS: $inetinterface is not currently running");}