#!/usr/bin/python | |
# Set up a new A record in Cloudflare, add the details of it along with your account details below | |
# Make sure this script runs on startup (or whenever you get a new IP...) | |
# | |
# @author Aaron Rice <aaron@duedil.com> | |
import urllib | |
import json | |
import sys | |
try: | |
new_ip = urllib.urlopen("http://my-ip.heroku.com/").read() | |
except: | |
print "Error getting IP" | |
sys.exit() | |
# Put your Cloudflare settings here. | |
# The host must be an A record that already exists in cloudflare | |
data = { | |
"a" : "DIUP", | |
"tkn" : "API_TOKEN_HERE", | |
"u" : "CLOUDFLARE_EMAIL_HERE", | |
"ip" : new_ip.strip(), | |
"z" : "DOMAIN_HERE", | |
"hosts" : "DNSNAME.DOMAIN_HERE", | |
} | |
try: | |
dns_response = json.loads(urllib.urlopen("https://www.cloudflare.com/api_json.html", urllib.urlencode(data)).read()) | |
if dns_response[u'result'] == "success": | |
print "IP updated to " + new_ip, | |
else: | |
print "Error Setting IP" | |
except: | |
print "Error with cloudflare API" |
This comment has been minimized.
This comment has been minimized.
Hi, Sorry I haven't responded sooner - I had no idea you commented. This was a quick hack for dynamic DNS via Cloudflare. If you run it as a cronjob on your server it will use the Cloudflare API to update your server's current public IP adress for the specified DNS entry on Cloudflare. The change should only take a few minutes max to propagate. I wouldn't trust it in a production environment, but it should work fine for testing / dev. Let me know if you have any problems, and feel free to email me if I don't respond quick enough here! Cheers, |
This comment has been minimized.
This comment has been minimized.
tiagoad
commented
Feb 11, 2014
Hey! I made a script similar to this, but it can update several hosts (like example.com and www.example.com). Check it out here: https://github.com/TTSDA/CfDDNS |
This comment has been minimized.
This comment has been minimized.
@ttsda nice! |
This comment has been minimized.
This comment has been minimized.
nardev
commented
Jan 9, 2017
seems like parameters are changed now... |
This comment has been minimized.
This comment has been minimized.
I'd imagine so! |
This comment has been minimized.
mooglestiltzkin commentedMar 30, 2013
Hi Riceo,
May i ask what this script is, how it works ?
I'm trying to get cloudflare to work with my dynamic dns service for my website which uses no-ip.info
Does your script somehow make this possible ?