Njalla

From MikroTik Wiki
Revision as of 12:59, 27 December 2017 by Normis (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Script to update the Njalla Dynamic DNS from RouterOS.

 #                            ___  ___
 #    ________  ___  ______  /  / /  / _____
 #    \       \ \__\_\___  \/  / /  /_\___  \
 #    /   \   / /  /   _   /  /_/  //   _   /
 #   /   //  /\/  /    /  /    /   /    /  /
 #  / __//__/    /\_______\____\___\_______\
 #  \/     \____/
 #
 # Njal.la Dynamic DNS v1.0
 #
 # This script requires these policies: read, policy, test.
 #
 # To add this to the scheduler, first add this script as "njalla", then use: /system scheduler add interval=5m name=njalla on-event=njalla policy=read,write,policy,test start-time=startup
 #
 # Configurable items here:
 
 :local domain "<your-domain>"
 :local key "<your-key>"
 :local WANinterface "<your-wan-interface>"
 
 # Leave the rest of the script as is.
 :global NjallaIP
 :local ipv4addr
 
 :set ipv4addr [/ip address get [/ip address find interface="$WANinterface"] address]
 :set ipv4addr [:pick [:tostr $ipv4addr] 0 [:find [:tostr $ipv4addr] "/"]]
 
 :if ([:len $ipv4addr] = 0) do={
    :log error ("Could not get IP for interface " . $WANinterface)
    :error ("Could not get IP for interface " . $WANinterface)
 }
 
 :if ($ipv4addr != $NjallaIP) do={
     :put "IPv4 address changed to $ipv4addr";
     :set NjallaIP $ipv4addr;
     :log info ("Updating dynamic IPv4 address to IP " . $ipv4addr)
     /tool fetch check-certificate=no keep-result=no mode=https url="https://njal.la/update/?h=$domain&k=$key&a=$ipv4addr&quiet"
 } else {
     :log info ("Dynamic IPv4 address is still " . $ipv4addr)
 }