Step 1:
get my Current Ip (from File "dyndns.txt" or anything else; the file Contains "Current IP: 80.140..." from my DynDNS Script)
set my current IP Adress as: "$CurrentIP"
Step2:
nslookup $CurrentIP
set Answer as=$CurrentDomain
/log info "My current DNS is: $CurrentDomain" (pXXX.dip.t-dialin.net)
Step3:
get to my "T-Online" PPPoE Client and set a comment like= "My Domain is: $CurrentDomain"
{
:local result [/file get dyndns.txt contents]
local resultlen [len $result]
local end [$resultlen +1]
local tmp [find $result key=:]
local start ($tmp + 2)
local currentIP [:pick $result $start $end]
local currentdomain [resolve $currentIP]
/log info "My current DNS is: $currentdomain"
interface pppoe-client set comment="My Domain is: $currentdomain" [find ]
}
# Set needed variables
:local username "LOGINNAME"
:local password "PASSWORT"
:local hostname "XXX.dyndns.org"
:global dyndnsForce
:global previousIP
# print some debug info
#:log info ("UpdateDynDNS: username = $username")
#:log info ("UpdateDynDNS: password = $password")
#:log info ("UpdateDynDNS: hostname = $hostname")
#:log info ("UpdateDynDNS: previousIP = $previousIP")
# get the current IP address from the internet (in case of double-nat)
/tool fetch mode=http address="checkip.dyndns.org" src-path="/" dst-path="/dyndns.checkip.html"
:delay 1
:local result [/file get dyndns.checkip.html contents]
# parse the current IP result
:local resultLen [:len $result]
:local startLoc [:find $result ": " -1]
:set startLoc ($startLoc + 2)
:local endLoc [:find $result "</body>" -1]
:local currentIP [:pick $result $startLoc $endLoc]
#:log info "UpdateDynDNS: currentIP = $currentIP"
:log info "<<<<<< AKTUELLE IP: $currentIP >>>>>>"
# Remove the # on next line to force an update every single time - useful for debugging,
# but you could end up getting blacklisted by DynDNS!
#:set dyndnsForce true
# Determine if dyndns update is needed
# more dyndns updater request details http://www.dyndns.com/developers/specs/syntax.html
:if (($currentIP != $previousIP) || ($dyndnsForce = true)) do={
:set dyndnsForce false
:set previousIP $currentIP
:log info "$currentIP or $previousIP"
/tool fetch user=$username password=$password mode=http address="members.dyndns.org" \
src-path="nic/update?system=dyndns&hostname=$hostname&myip=$currentIP&wildcard=no" \
dst-path="/dyndns.txt"
:delay 1
:local result [/file get dyndns.txt contents]
:log info ("UpdateDynDNS: Dyndns update needed")
:log info ("UpdateDynDNS: Dyndns Update Result: ".$result)
:put ("Dyndns Update Result: ".$result)
} else={
#:log info ("UpdateDynDNS: No dyndns update needed")
}