3322动态域名(3322动态域名官网)

更新时间:2023-03-02 11:17:48 阅读: 评论:0

一般公司本地网络基本都是动态的公网IP,IP不定时的改变,偶尔在本地搭建测试环境或做其他操作就很麻烦,拉专线的话一般公司也舍不得

,所以这边通过脚本自动定时修改指定域名解析到最新获取到的本地IP

注意事项:

#功能:获取本地动态公网IP ,调用阿里云域名接口,直接修改域名绑定的ip地址 ,后期可结合nginx代理

#注意:二级域名需先创建

#该脚本支持python2,pyhon3

#如果二级域名已经存在了对应的IP地址,执行时会报错,定时执行脚本时可忽略

#报错信息:aliyunsdkcore.acs_exception.exceptions.ServerException: HTTP Status: 400 Error:DomainRecordDuplicate The DNS record already exists. RequestID: 9BF44B92-5CE3-4CE7-A947-3BFDEA42E785

环境:

python 2/3 #一般linux都自带了

赋脚本:ddns.py

# 创建的 AccessKey #阿里云个人中心->accesskeysID="XX个人账户的XX"Secret="XX个人账户的XX"# 默认 --不修改RegionId="cn-hangzhou"# 你的域名 DomainName="域名如a.com"# 你想解析的二级域名,是一个列表,可以写多个#HostNameList = ['test','hello', 'world']HostNameList = ['test']# 默认Types = "A"clt = client.AcsClient(ID,Secret,RegionId)#######################################################################################print (clt)# 动态获取当前公司对外的公网 IPdef GetLocalIP(): # IPInfo = urllib.urlopen("http://www.trackip.net/").read() # IP = re.findall(r"ip:'(.*?)',", IPInfo)[0] # return IP#bak1 url='http://members.3322.org/dyndns/getip' url = 'http://www.trackip.net/' r = requests.get(url) #print (r) txt = r.text IP = txt[txt.find('title')+6:txt.find('/title')-1] return IP # 更新域名 IPdef EditDomainRecord(HostName, RecordId, Types, IP): UpdateDomainRecord = UpdateDomainRecordRequest.UpdateDomainRecordRequest() UpdateDomainRecord.t_accept_format('json') UpdateDomainRecord.t_RecordId(RecordId) UpdateDomainRecord.t_RR(HostName) UpdateDomainRecord.t_Type(Types) UpdateDomainRecord.t_TTL('600') UpdateDomainRecord.t_Value(IP) UpdateDomainRecordJson = json.loads(clt.do_action_with_exception(UpdateDomainRecord))# print UpdateDomainRecordJson # 获取域名信息def GetAllDomainRecords(DomainName, Types, IP): DomainRecords = DescribeDomainRecordsRequest.DescribeDomainRecordsRequest() DomainRecords.t_accept_format('json') DomainRecords.t_DomainName(DomainName) DomainRecordsJson = json.loads(clt.do_action_with_exception(DomainRecords)) # print DomainRecordsJson['DomainRecords']['Record'] for HostName in HostNameList: for x in DomainRecordsJson['DomainRecords']['Record']: RR = x['RR'] Type = x['Type'] if RR == HostName and Type == Types: RecordId = x['RecordId'] # print RecordId EditDomainRecord(HostName, RecordId, Types, IP) IP = GetLocalIP()#print (IP)GetAllDomainRecords(DomainName, Types, IP)

#执行下脚本

python ddns.py

#设置定时执行

#每5分钟执行一次

*/5 * * * * /usr/bin/python ddns.py

没啥大的问题,这边就不做截图,有兴趣的话可以尝试下,个人觉得还是比较实用的

本文发布于:2023-02-28 21:07:00,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/zhishi/a/167772706899708.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:3322动态域名(3322动态域名官网).doc

本文 PDF 下载地址:3322动态域名(3322动态域名官网).pdf

上一篇:暑假小结
下一篇:返回列表
标签:动态域名   官网
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 实用文体写作网旗下知识大全大全栏目是一个全百科类宝库! 优秀范文|法律文书|专利查询|