https://wiki.mikrotik.com/index.php?title=Dynamic_DNS_Update_Script_for_ChangeIP.com&feed=atom&action=history
Dynamic DNS Update Script for ChangeIP.com - Revision history
2024-03-28T20:48:03Z
Revision history for this page on the wiki
MediaWiki 1.38.2
https://wiki.mikrotik.com/index.php?title=Dynamic_DNS_Update_Script_for_ChangeIP.com&diff=5806&oldid=prev
Normis at 10:45, 29 October 2007
2007-10-29T10:45:49Z
<p></p>
<p><b>New page</b></p><div>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.<br />
<br />
<pre><br />
:log info "DDNS: Begin"<br />
<br />
:global ddns-user "YOURUSERID"<br />
:global ddns-pass "YOURPASSWORD"<br />
:global ddns-host "*1"<br />
:global ddns-interface "EXACTINTERFACENAME"<br />
<br />
:global ddns-ip [ /ip address get [/ip address find interface=$ddns-interface] address ]<br />
<br />
:if ([ :typeof $ddns-lastip ] = nil ) do={ :global ddns-lastip 0.0.0.0/0 }<br />
<br />
:if ([ :typeof $ddns-ip ] = nil ) do={<br />
<br />
:log info ("DDNS: No ip address present on " . $ddns-interface . ", please check.")<br />
<br />
} else={<br />
<br />
:if ($ddns-ip != $ddns-lastip) do={<br />
<br />
:log info "DDNS: Sending UPDATE!"<br />
:log info [ /tool dns-update name=$ddns-host address=[:pick $ddns-ip 0 [:find $ddns-ip "/"] ] key-name=$ddns-user key=$ddns-pass ]<br />
:global ddns-lastip $ddns-ip<br />
<br />
} else={ <br />
<br />
:log info "DDNS: No change" <br />
<br />
}<br />
<br />
}<br />
<br />
:log info "DDNS: End"<br />
</pre><br />
<br />
An updated script here (10/18/07) 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.<br />
<br />
<pre><br />
:global ddnsuser "YOURUSERID"<br />
:global ddnspass "YOURPASSWORD"<br />
:global ddnshost "YOUR.HOST.NAME.HERE"<br />
#:global ddnsinterface "1-coxBiz"<br />
<br />
:global ddnssystem ("mt-" . [/system package get [/system package find name=system] version] )<br />
<br />
:foreach int in=[/ip route find dst-address=0.0.0.0/0 active=yes ] do={ <br />
:if ([:typeof [/ip route get $int routing-mark ]] = nothing ) do={<br />
:global ddnsinterface [/ip route get $int interface]<br />
} <br />
}<br />
<br />
:global ddnsip [ /ip address get [/ip address find interface=$ddnsinterface] address ]<br />
<br />
:if ([ :typeof $ddnslastip ] = nil ) do={ :global ddnslastip 0.0.0.0/0 }<br />
<br />
:if ([ :typeof $ddnsip ] = nil ) do={<br />
<br />
:log info ("DDNS: No ip address present on " . $ddnsinterface . ", please check.")<br />
<br />
} else={<br />
<br />
:if ($ddnsip != $ddnslastip) do={<br />
<br />
:log info "DDNS: Sending UPDATE!"<br />
:log info [ :put [/tool dns-update name=$ddnshost address=[:pick $ddnsip 0 [:find $ddnsip "/"] ] key-name=$ddnsuser key=$ddnspass ] ]<br />
:global ddnslastip $ddnsip<br />
<br />
} else={ <br />
<br />
}<br />
<br />
}<br />
</pre><br />
<br />
[[Category:Scripting]]</div>
Normis
https://wiki.mikrotik.com/index.php?title=Dynamic_DNS_Update_Script_for_ChangeIP.com&diff=5249&oldid=prev
Janisk: Reverted edits by IkzL3n (Talk); changed back to last version by Changeip
2007-08-13T08:24:07Z
<p>Reverted edits by <a href="/wiki/Special:Contributions/IkzL3n" title="Special:Contributions/IkzL3n">IkzL3n</a> (<a href="/index.php?title=User_talk:IkzL3n&action=edit&redlink=1" class="new" title="User talk:IkzL3n (page does not exist)">Talk</a>); changed back to last version by <a href="/index.php?title=User:Changeip&action=edit&redlink=1" class="new" title="User:Changeip (page does not exist)">Changeip</a></p>
<p><b>New page</b></p><div>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.<br />
<br />
<pre><br />
:log info "DDNS: Begin"<br />
<br />
:global ddns-user "YOURUSERID"<br />
:global ddns-pass "YOURPASSWORD"<br />
:global ddns-host "*1"<br />
:global ddns-interface "EXACTINTERFACENAME"<br />
<br />
:global ddns-ip [ /ip address get [/ip address find interface=$ddns-interface] address ]<br />
<br />
:if ([ :typeof $ddns-lastip ] = nil ) do={ :global ddns-lastip 0.0.0.0/0 }<br />
<br />
:if ([ :typeof $ddns-ip ] = nil ) do={<br />
<br />
:log info ("DDNS: No ip address present on " . $ddns-interface . ", please check.")<br />
<br />
} else={<br />
<br />
:if ($ddns-ip != $ddns-lastip) do={<br />
<br />
:log info "DDNS: Sending UPDATE!"<br />
:log info [ /tool dns-update name=$ddns-host address=[:pick $ddns-ip 0 [:find $ddns-ip "/"] ] key-name=$ddns-user key=$ddns-pass ]<br />
:global ddns-lastip $ddns-ip<br />
<br />
} else={ <br />
<br />
:log info "DDNS: No change" <br />
<br />
}<br />
<br />
}<br />
<br />
:log info "DDNS: End"<br />
</pre></div>
Janisk