I am verifying a small program to update my IP in DynDns.
What I do is the following:
#!/usr/bin/python
import requests
import json
user = "email"
password = "pass"
checkip = "http://thisisnt.com/api/getRemoteIp.php"
dynupdate = "https://members.dyndns.com/nic/update"
print "starting. Get current IP..."
ipraw = requests.get(checkip)
if ipraw.status_code is not 200:
raise "Cannot get IP address"
exit
ip = ipraw.json()['REMOTE_ADDR']
print "Remote IP: " + ip
print "updating..."
# update dyndns
headers = {'user-agent': 'mPythonClient/0.0.3'}
dyn = requests.get(dynupdate, \
headers=headers, \
auth=(user, password), \
params={'hostname': 'xjhdshsdhagsafhg.ddns.net', \
'myip': ip, \
'wildcard': 'NOCHG', \
'mx': 'MX', \
})
if dyn.status_code is not 200:
print "Update failed. HTTP Code: " + str(dyn.status_code)
if "good" in dyn.text:
print "update successful.."
else:
print "Update unsuccessful: " + dyn.text.strip()
I think I have put the data and the parameters correctly, but the problem is that when I run it the update is not successful:
My question is: how could I get back my correctly updated IP? Always stay in:
print "Update unsuccessful: " + dyn.text.strip()
And what I would like to do is to update it with the new IP and print it:
print "update successful.." + ip