替换上你的Email,密码,域名ID,记录ID等参数,就可以运行了。 会在后台一直运行,每隔30秒检查一遍IP,如果修改了就更新IP。
获得domain_id可以用curl
curl -k https://dnsapi.cn/Domain.List -d "login_email=xxx&login_password=xxx"
获得record_id类似
curl -k https://dnsapi.cn/Record.List -d "login_email=xxx&login_password=xxx&domain_id=xxx"
#!/usr/bin/env python2
-- coding:utf-8 --
import httplib
import urllib
import socket
import time
Use Token, check https://support.dnspod.cn/Kb/showarticle/tsid/227/
ID = "19999" # relace with yours, get it as link above show you.
Token = "8eeeeeeeeeeeeeeeeeeeeeeeeeeeeeee" # relace with yours, get it as above link show you.
params = dict(
login_token=("%s,%s" % (ID, Token)),
format="json",
domain_id=1999999, # replace with your domain_od, can get it by API Domain.List
record_id=199999999, # replace with your record_id, can get it by API Record.List
sub_domain="ddns", # replace with your sub_domain
record_line="默认", #
)
current_ip = None
def ddns(ip):
params.update(dict(value=ip))
headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/json"}
conn = httplib.HTTPSConnection("dnsapi.cn")
conn.request("POST", "/Record.Ddns", urllib.urlencode(params), headers)
def getip():
sock = socket.create_connection(('ns1.dnspod.net', 6666), 20)
ip = sock.recv(16)
sock.close()
return ip
if name == 'main':
while True:
try:
ip = getip()
print ip
if current_ip != ip:
if ddns(ip):
current_ip = ip
except Exception as e:
print e
pass
time.sleep(30)