1 Star 1 Fork 0

月夜行梦/ddns-py3

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
ddns.py 2.38 KB
一键复制 编辑 原始数据 按行查看 历史
月夜行梦 提交于 2020-11-25 00:12 +08:00 . add logger
#!/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
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Python
1
https://gitee.com/tdg/ddns-py3.git
[email protected]:tdg/ddns-py3.git
tdg
ddns-py3
ddns-py3
master

搜索帮助