Difference between revisions of "Ros3 Dyn DNS"
(Fixed formatting) |
(Updates Script) |
||
Line 15: | Line 15: | ||
==Script== | ==Script== | ||
<pre><nowiki> | <pre><nowiki> | ||
− | # | + | # MyDDns International Account |
− | |||
− | |||
− | |||
− | # | + | # Local user variables |
− | : | + | :local DnsUser "enter your MyDDns username here" |
− | : | + | :local DnsPass "enter your MyDDns password here" |
− | : | + | :local DnsHost "enter your MyDDns hostname here" |
+ | :local DnsInterface "enter your PPPoE interface name here" | ||
− | + | # Global user variables | |
− | :global | + | # if you have another PPPoE account with this script you need to change LastDnsIpInter to something unique; search/replace |
+ | :global LastDnsIpInter | ||
+ | :if ([ :typeof $LastDnsIpInter ] = nil) do={ :global LastDnsIpInter "0"} | ||
− | # | + | # Get the current Ip Address |
− | :local | + | :local DnsIp [/ip address get [/ip address find interface=$DnsInterface] address ] |
− | |||
− | # | + | # Check for updates |
− | + | :if ([ :typeof $DnsIp ] = nil ) do={ | |
− | + | :log info ("DynDns: No Ip address present on ". $DnsInterface ) | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
} else={ | } else={ | ||
− | + | :local NewIp [ :pick $DnsIp 0 [ :find $DnsIp "/" ] ] | |
− | + | :if ($NewIp != $LastDnsIpInter) do={ | |
− | :if ($ | + | :log info ("DynDns: ". $DnsInterface ." Sending update.") |
− | + | :local DnsResult ( [ :put [ /tool dns-update name=$DnsHost address=$NewIp key-name=$DnsUser key=$DnsPass ] ] ) | |
− | + | :global LastDnsIpInter $NewIp | |
− | :log info " | + | } else={ |
− | : | + | # Uncomment the line below if you want to see when updates aren't needed |
− | :global | + | # :log info "DynDns: ($DnsInterface) No update needed" |
− | |||
− | |||
− | } else={ | ||
− | |||
} | } | ||
− | |||
− | |||
} | } | ||
− | |||
− | |||
− | |||
− | |||
</nowiki></pre> | </nowiki></pre> |
Revision as of 18:44, 18 July 2009
Contents
Info
The following script should be created when you wish to update your ChangeIP.com Dynamic DNS account. Once created you should schedule this to run once in a while. The :global variables should be edited to include your unique username and password, interface name, etc. The script here should allow auto-detection of the default gateways interface name. This script below can be used if you have more than 1 WAN connection, but only 1 is active at a time.
This script will work as is, just navigate to System/Scripts and run it. This particular script works good with a 5 minute interval to update your Dynamic DNS with a scheduler.
Setup
For this script to function correctly, there are a few things that will need to be setup. Not necessary, but always good to have in place.
- Routerboard Identity Setup rb_Identity
- Routerboard Time Setup, either manually rb_time_manual or via NTP rb_ntp_setup
Enhancements
- Check out Dynamic DNS Schedule to create a schedule, that will run the script at a predefined period.
Script
# MyDDns International Account # Local user variables :local DnsUser "enter your MyDDns username here" :local DnsPass "enter your MyDDns password here" :local DnsHost "enter your MyDDns hostname here" :local DnsInterface "enter your PPPoE interface name here" # Global user variables # if you have another PPPoE account with this script you need to change LastDnsIpInter to something unique; search/replace :global LastDnsIpInter :if ([ :typeof $LastDnsIpInter ] = nil) do={ :global LastDnsIpInter "0"} # Get the current Ip Address :local DnsIp [/ip address get [/ip address find interface=$DnsInterface] address ] # Check for updates :if ([ :typeof $DnsIp ] = nil ) do={ :log info ("DynDns: No Ip address present on ". $DnsInterface ) } else={ :local NewIp [ :pick $DnsIp 0 [ :find $DnsIp "/" ] ] :if ($NewIp != $LastDnsIpInter) do={ :log info ("DynDns: ". $DnsInterface ." Sending update.") :local DnsResult ( [ :put [ /tool dns-update name=$DnsHost address=$NewIp key-name=$DnsUser key=$DnsPass ] ] ) :global LastDnsIpInter $NewIp } else={ # Uncomment the line below if you want to see when updates aren't needed # :log info "DynDns: ($DnsInterface) No update needed" } }