#--------------- Change Values in this section to match your setup ------------------ # User account info of OpenDNS # Update-only password (obtained from OpenDNS Support). With two-factor authentication enabled, the use of an update only password is required. :local odnsuser "OpenDNS user/email" :local odnspass "OpenDNS Password" # Set the hostname or label of network to be updated. This is the name of your OpenDNS network on the Dashboard. # Hostnames with spaces are unsupported. Replace the value in the quotations below with your host name. # Only one host is supported # Use "all.dnsomatic.com" for the matichost to update all items in dnsomatic with this IP. # Note, you must have admin or edit (Read/Write/Grant in the OpenDNS Dashboard) to update IP addresses. :local odnshost "YourNetworkName" # Change to the name of interface that gets the changing IP address # May not be needed for your model number - commenting out this line may still work for single interface devices or if this is not supplied in the DNS-O-Matic script currently being used :local inetinterface "Your Public Interface" #------------------------------------------------------------------------------------ # No more changes needed, one optional change :global previousIP; #:log info "Fetching current IP" # Get the current public IP using DNS-O-Matic service. # or your own link :local IPHost "http://myip.dnsomatic.com" :log info "Fetching current IP with $IPHost" /tool fetch url="$IPHost" mode=http 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" # --------- Optional check to only run if the IP has changed (one line: :if) # to disable, set line below to: ":if ($currentIP != 1) do={" :if ($currentIP != $previousIP) do={ :log info "OpenDNS: Update needed" :set previousIP $currentIP # The update URL. Note the "\3F" is hex for question mark (?). Required since ? is a special character in commands. # Some older editions of the MicroTik/WinBox OS require the following line instead (http) whereas newer versions require https. # :local url "http://updates.opendns.com/nic/update\3Fhostname=$odnshost" :local url "http://updates.opendns.com/nic/update\3Fhostname=$odnshost" :log info "OpenDNS: Sending update for $odnshost" /tool fetch url=($url) user=$odnsuser password=$odnspass mode=http dst-path=("/net_odns.txt") :delay 2; :local odnsReply [/file get net_odns.txt contents]; :log info "OpenDNS update complete." :log info "OpenDNS reply was $odnsReply"; } else={ :log info "OpenDNS: Previous IP $previousIP and current IP equal, no update need" }