Hello. I have a script for update DDNS with a DNSoMatic Service . The last week I updated my router RB3011 the 6.38 to 6.38.1. Since the update the RouterOS doesn´t work my DNSoMatic script. I don´t change the configuration in this migration.
DNSoMatic automatic DNS updates
#--------------- Change Values in this section to match your setup ------------------
User account info of DNSoMatic
:local maticuser "email"
:local maticpass "password"
Set the hostname or label of network to be updated. This is the part after the double colon (:
on the DNSoMatic services page.
Hostnames with spaces are unsupported. Replace the value in the quotations below with your host names.
To specify multiple hosts, separate them with commas.
Use "all.dnsomatic.com" for the matichost to update all items in dnsomatic with this IP.
:local matichost "all.dnsomatic.com"
#------------------------------------------------------------------------------------
No more changes need
:global previousIP;
:log info "Fetching current IP"
Get the current public IP using DNS-O-Matic service.
/tool fetch url="https://myip.dnsomatic.com/" mode=https dst-path=mypublicip.txt
Read the current public IP into the currentIP variable.
:local currentIP [/file get mypublicip.txt contents]
:log info "Fetched current IP as $currentIP"
:if ($currentIP != $previousIP) do={
:log info "DNSoMatic: Update needed"
:set previousIP $currentIP
The update URL. Note the "\3F" is hex for question mark (?). Required since ? is a special character in commands.
:local url "https://updates.dnsomatic.com/nic/update\3Fmyip=$currentIP&wildcard=NOCHG&mx=NOCHG&backmx=NOCHG"
:local matichostarray;
:set matichostarray [:toarray $matichost];
:foreach host in=$matichostarray do={
:log info "DNSoMatic: Sending update for $host"
/tool fetch url=($url . "&hostname=$host") user=$maticuser password=$maticpass mode=http dst-path=("dnsomaticupdate-" . $host . ".txt")
:log info "DNSoMatic: Host $host updated on DNSoMatic with IP $currentIP"
}
} else={
:log info "DNSoMatic: Previous IP $previousIP and current IP equal, no update need"
}