Googlando ho trovato questa versione che sembra essere piu completo del mio precedente script
#Dynamic DNS Update Script for No-IP DNS behind nat # Set needed variables :local username "your no-ip user login" :local password "your no-ip password" :local host "your no-ip host name" :global previousIP # print some debug info :log info ("Update No-IP DNS: username = $username") :log info ("Update No-IP DNS: hostname = $host") :log info ("Update No-IP DNS: previousIP = $previousIP") # # behind nat - get the public address using dyndns url http://checkip.dyndns.org /tool fetch mode=http address="checkip.dyndns.org" src-path="/" dst-path="/dyndns.checkip.html" :delay 2 :local result [/file get dyndns.checkip.html contents] :log info "dyndns result = $result" # parse the current IP result :local resultLen [:len $result] :local startLoc [:find $result ": " -1] :set startLoc ($startLoc + 2) :local endLoc [:find $result "</body>" -1] :local currentIP [pick $result $startLoc $endLoc] :log info "No-IP DNS: currentIP = $currentIP" :if ($currentIP != $previousIP) do={ :log info "No-IP: Current IP $currentIP is not equal to previous IP, update needed" :set previousIP $currentIP :local url "http://dynupdate.no-ip.com/nic/update/?myip=$currentIP&hostname=$host" :log info "No-IP DNS: Sending update for $host" /tool fetch url=$url user=$username password=$password mode=http dst-path=("no-ip_ddns_update.txt") :log info "No-IP DNS: Host $host updated on No-IP with IP $currentIP" :delay 2 :local result [/file get "no-ip_ddns_update.txt" contents] :log info "Update Result = $result" } else={ :log info "No-IP: update not needed " } # end