代码拉取完成,页面将自动刷新
#!/usr/bin/python
# -*- coding: UTF-8 -*-
from urllib import request
import json, os, logging
import dnspod
import logger
global LocalIP
global HostIP
global Login_Token
global Domain_Id
def init_domain(domain):
global Domain_Id
try:
domain_exists = check_domain_exists(domain)
if domain_exists == False:
Domain_Id = dnspod.create_domain(Login_Token, domain['name'])
pass
except Exception as e:
logging.error(u"初始化域名失败")
pass
def check_domain_exists(domain):
global Domain_Id
Domain_Id = dnspod.get_domain_id(Login_Token, domain['name'])
if Domain_Id == 0:
return False
else:
return True
def ddns(domain):
global Domain_Id
for sub_domain in domain['sub_domains']:
record_id = dnspod.get_record_id(Login_Token, Domain_Id, sub_domain)
if record_id == 0:
dnspod.create_record_id(Login_Token, Domain_Id, sub_domain, LocalIP)
else:
dnspod.record_ddns(Login_Token, Domain_Id, record_id, sub_domain, LocalIP)
def get_ip():
global LocalIP
try:
response = request.urlopen(r'http://ip.taobao.com/outGetIpInfo?ip=myip&accessKey=alibaba-inc').read().decode('utf-8')
data = json.loads(response)
LocalIP = data['data']['ip']
logging.info(LocalIP)
pass
except Exception as e:
logging.error(u"获取本机IP失败")
pass
def get_host_ip(domain):
global HostIP
global Domain_Id
try:
HostIP = dnspod.get_record_value(Login_Token, Domain_Id, domain['sub_domains'][0])
logging.info(HostIP)
pass
except Exception as e:
logging.error(u"获取远程IP失败")
pass
if __name__ == '__main__':
global Login_Token
logger.setup_logging()
conf = json.load(open(os.path.join(os.path.dirname(os.path.realpath(__file__)), "conf.json"), "r"))
Login_Token = "%s,%s" % (conf['id'], conf['token'])
Domains = conf['domains']
try:
get_ip()
for domain in Domains:
init_domain(domain)
get_host_ip(domain)
if HostIP != LocalIP:
logging.info(f"Begin update [{domain['name']}].")
ddns(domain)
except Exception as e:
logging.error(e)
pass
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。