1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Python脚本实现DNSPod DNS动态解析域名

Python脚本实现DNSPod DNS动态解析域名

时间:2021-02-20 05:56:11

相关推荐

Python脚本实现DNSPod DNS动态解析域名

后端开发|Python教程

Python,脚本,DNSPod,DNS,动态解

后端开发-Python教程

闲暇之余,在家里自建了个服务器,因为用的小区宽带,IP位动态分配。域名解析就是个问题,我的域名一般停放在DNSPod下。DNSPod有提供修改的API,就用Python简单的实现了一下动态解析。这样,就不用安装花生壳了。 废话不说,看代码:

多人语音聊天工具源码,vscode如何运行程序的,Ubuntu集群搭建,tomcat搭建技术博客,数眼爬虫,php 中文字体,杭州素衣网络SEO靠谱吗lzw

#!/usr/bin/env python#-*- coding:utf-8 -*-import httplib, urllib, urllib2import timeimport sys,osimport reimport jsonusername = xxxx #账号password = xxx #密码format = jsondomain = [u\] #要解析的域名def get_domain_info(domain): domain_split = domain.split(.) domain_split_len = len(domain_split) maindomain = domain_split[domain_split_len - 2] + . + domain_split[domain_split_len - 1] return maindomain,domainparams = {login_email:username,login_password:password,format:format}def request(action, params, method = POST): headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/json"} conn = httplib.HTTPSConnection("") conn.request(method, / + action, urllib.urlencode(params), headers) response = conn.getresponse() data = response.read() conn.close() if response.status == 200: return data else: return Nonedef get_my_domain_id(): data = request(Domain.List,params) data = json.loads(data) domainlist = data.get(domains) domaninfo = {} for d in domainlist: domaninfo[d.get( ame)] = d.get(id) return domaninfodef get_my_domain_record_id(domain_id): params[domain_id] = domain_id data = request(Record.List,params) data = json.loads(data) if data.get(code) == 10: return None domainname = data.get(domain).get( ame) record_list = data.get( ecords) record = {} for r in record_list: if r.get( ype) == A:key = r.get( ame) != @ and r.get( ame) + . + domainname or domainnamerecord[key] = {id:r.get(id),value:r.get(value)} return recorddef changerecord(domain,domain_id,record_id,ip): params[domain_id] = domain_id params[ ecord_id] = record_id params[ ecord_type] = A params[ ecord_line] = 默认 params[sub_domain] = domain params[ tl] = 600 params[value] = ip data = request(Record.Modify,params)def getip(): url = /ic.asp response = urllib2.urlopen(url) text = response.read() ip = re.findall(r\d+.\d+.\d+.\d+, text) return ip[0] or Nonedef updatedomaininfo(domain): m,sub_m = get_domain_info(domain) domain_id = my_domain_id_list.get(m) record_list = get_my_domain_record_id(domain_id) if record_list == None: return None rocord_info = record_list.get(sub_m) record_ip = rocord_info.get(value) record_id = rocord_info.get(id) return sub_m,record_ip,record_id,domain_idif __name__ == \__main__: my_domain_id_list = get_my_domain_id() try: for dm in domain:domaindata = updatedomaininfo(dm)if domaindata == None: continuednsdomain,dnsdmainip,record_id,domain_id = domaindatadomain_name = dnsdomain.split(.)[0]ip = getip()if ip == dnsdmainip: continueelse: changerecord(domain_name,domain_id,record_id,ip) except: pass

多用户商城源码dz论坛,ubuntu安装做raid,tomcat根目录在哪儿,不用打光的爬虫,php中get获取n并输出,seo雇佣平台lzw

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。