日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python3实现阿里云DDNS域名动态解析

發布時間:2023/12/14 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python3实现阿里云DDNS域名动态解析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一. 前言

  • 家里部署了一臺NAS服務器,在公司平時都是通過IP訪問的,現在想更改為用域名去訪問,但是家里的寬帶都是動態的公網IP,每次IP變了都需要手動解析一次域名,這樣就比較麻煩,那怎么辦了?這個時候我們就可以用到阿里云DDSN來實現自動進行域名解析, 通過阿里云的SDK來添加修改域名解析,檢查本機公網IP與解析的IP是否一致,若不同則自動修改解析,達到動態解析的目的。

二.準備工作

  • 準備一個公網IP(如何檢查家里的IP是否是公網IP,我們可以通過查看路由器wan口IP和通過百度獲取IP,查看兩個IP是否一致,如一致者是公網IP,反之者不是)
  • 阿里云域名
  • 獲取阿里云的accessKeyId和accessSecret(可以在阿里云控制臺個人中心直接獲取。建議使用RAM角色來進行權限控制,這樣的話安全風險較小)
  • python3環境
  • 三.詳細步驟

    1.安裝依賴包

    pip3 install aliyun-python-sdk-core-v3 pip3 install aliyun-python-sdk-domain pip3 install aliyun-python-sdk-alidns pip3 install requests pip3 install beautifulsoup4 pip3 install lxml

    2.單獨寫一個獲取公網IP的腳本(以下演示腳本網站為:ip.tool.chinaz.com,各位可自行通過其他地址獲取IP信息)

    • GetpublicIP.py
    import requests from bs4 import BeautifulSoup import redef getip():'''通過ip.tool.chinaz.com地址獲取當前公網ip'''url = "https://ip.tool.chinaz.com/"headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"}res = requests.get(url, headers=headers)soup = BeautifulSoup(res.text, "lxml")label = soup.find('div', attrs={'class': 'WhwtdWrap bor-b1s col-gray03'})label_1 = label.find("span")regular = re.findall(r'">(.+?)</span>', str(label_1))print(f"當前IP地址為:{regular[0]}")return regular[0]if __name__ == "__main__":getip()

    3.編寫阿里云ddns動態域名解析

    • alyddns.py
    import json # from GetpublicIP import getip from urllib.request import urlopen from aliyunsdkcore.client import AcsClient from aliyunsdkalidns.request.v20150109.DescribeSubDomainRecordsRequest import DescribeSubDomainRecordsRequestclass Dnscontroller:# 阿里云個人中心獲取Access_Key_Id和Access_Key_Secretaccess_key_id = ""access_key_secret = ""# 填寫你的主域名domain = ""# 要進行ipv4 ddns解析的子域名(主機記錄)name_ipv4 = "@"# 解析記錄類型,一般為A記錄record_type = "A"# 區域region = "cn-shenzhen"def __init__(self):self.client = AcsClient(self.access_key_id,self.access_key_secret,self.region)# 添加新的域名解析記錄def add(self, DomainName, RR, Type, Value):from aliyunsdkalidns.request.v20150109.AddDomainRecordRequest import AddDomainRecordRequestrequest = AddDomainRecordRequest()request.set_accept_format('json')request.set_DomainName(DomainName)request.set_RR(RR)request.set_Type(Type)request.set_Value(Value)response = self.client.do_action_with_exception(request)# 修改域名解析記錄def update(self, RecordId, RR, Type, Value):from aliyunsdkalidns.request.v20150109.UpdateDomainRecordRequest import UpdateDomainRecordRequestrequest = UpdateDomainRecordRequest()request.set_accept_format('json')request.set_RecordId(RecordId)request.set_RR(RR)request.set_Type(Type)request.set_Value(Value)response = self.client.do_action_with_exception(request)# 獲取公網IP并進行修改def Get_IPv4(self):request = DescribeSubDomainRecordsRequest()request.set_accept_format('json')request.set_DomainName(self.domain)request.set_SubDomain(self.name_ipv4 + '.' + self.domain)response = self.client.do_action_with_exception(request) # 獲取域名解析記錄列表domain_list = json.loads(response) # 將返回的JSON數據轉化為Python能識別的# 獲取IP方法一ipv4 = json.load(urlopen('http://jsonip.com'))['ip']print("獲取到IPv4地址:%s" % ipv4)# 獲取IP方法二,爬取IP地址# ipv4 = getip()if domain_list['TotalCount'] == 0:self.add(self.domain, self.name_ipv4, self.record_type, ipv4)print("新建域名解析成功")elif domain_list['TotalCount'] == 1:if domain_list['DomainRecords']['Record'][0]['Value'].strip() != ipv4.strip():self.update(domain_list['DomainRecords']['Record'][0]['RecordId'], self.name_ipv4, self.record_type, ipv4)print("修改域名解析成功")else:print("IPv4地址沒變")elif domain_list['TotalCount'] > 1:# 刪除所有解析過的記錄,并重新添加新的解析記錄from aliyunsdkalidns.request.v20150109.DeleteSubDomainRecordsRequest import DeleteSubDomainRecordsRequestrequest = DeleteSubDomainRecordsRequest()request.set_accept_format('json')request.set_DomainName(self.domain)request.set_RR(self.name_ipv4)response = self.client.do_action_with_exception(request)self.add(self.domain, self.name_ipv4, self.record_type, ipv4)print("修改域名解析成功")if __name__ == "__main__":Dnscontroller().Get_IPv4()

    三.部署腳本到centos7系統

    1.centos7 安裝python3,鏈接: link

    2.把alyddns.py文件上傳到服務器“/dns”目錄下,并賦予權限

    cd /dns chmod +x alyddns.py

    3.centos7下安裝python3 阿里云依賴庫

    sudo pip3 install aliyun-python-sdk-core-v3==2.13.10 pip3 install aliyun-python-sdk-alidns pip3 install aliyun-python-sdk-domain

    四.腳本設置定時運行

    • CentOS內置有強大的計劃任務工具Crontab,如果系統里沒有則先使用yum安裝

    1.安裝Crontab

    yum install crontabs

    2.查看Crontab狀態

    service crond status ntsysv #查看crontab服務是否已設置為開機啟動,如未設置開機自啟,就勾選“crond.service”并確定

    3.添加定時任務

    crontab -e #編輯cron任務模式 i #默認文字編輯器為vim,按i字母鍵即可添加cron任務 */10 * * * * /usr/bin/python3 /dns/alyddns.py #將命令代碼放入,此命令意義為間隔10分組檢查一次IP是否有變動 ESC #按ESC鍵退出編輯模式 :wq #鍵入:wq保存 service crond restart #重啟crontab服務

    4.查看任務列表

    crontab -l

    5.Crontab命令在線驗證工具
    鏈接: link

    總結

    以上是生活随笔為你收集整理的python3实现阿里云DDNS域名动态解析的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 国产一级内谢 | 久久综合91 | 来吧亚洲综合网 | 波多野结衣亚洲视频 | 国产精品高清无码在线观看 | 久久99精品久久久久子伦 | 女女同性被吸乳羞羞 | 精品久久久噜噜噜久久久 | 久久精精品久久久久噜噜 | 亚洲精品久久久久久久久 | 亚洲免费天堂 | 伊人久艹 | 国产13页 | 国产色综合网 | 久久丁香 | 成人久久久久久久 | 99精品视频在线观看免费 | 日本成人一区二区三区 | 国产激情视频一区二区 | 国产在线观看免费 | 日韩一区免费观看 | 日本伦理一区二区 | 好吊色一区二区 | www.成人av.com | 国产在线毛片 | 欧美黑人一区 | 外国电影免费观看高清完整版 | 玖草视频在线观看 | 在线观看欧美 | 得得的爱在线视频 | 国产视频你懂的 | 午夜色大片 | 日韩成人一区 | www.日本高清 | 欧美整片sss | 国产91丝袜在线播放0 | 成年人黄色网址 | 熟女毛毛多熟妇人妻aⅴ在线毛片 | 亚洲一区成人在线 | 日韩大片在线观看 | 在线国产黄色 | 麻豆免费网站 | 青草草在线观看 | 欧美又粗又长又爽做受 | 波多野结衣一区二区三区在线 | 秋霞影院午夜 | 欧美中文字幕 | 国产精品第100页 | 91成人国产综合久久精品 | 午夜性生活视频 | 一区二区日韩av | 亚瑟av在线 | 亚洲综合欧美日韩 | 中文字幕第页 | asian性开放少妇pics | 精品玖玖玖 | 精品无人区无码乱码毛片国产 | 精品h视频| av在线网站观看 | 国产精品av在线播放 | 无码人妻一区二区三区在线 | 婷婷射图| 夜色视频在线观看 | 雪白的扔子视频大全在线观看 | h片在线免费观看 | 国产区一区二区三 | 91蜜桃传媒精品久久久一区二区 | 亚洲成人一区在线观看 | 欧美乱妇狂野欧美在线视频 | 毛片其地| 国模婷婷 | 国产一区二区三区免费在线观看 | а√天堂www在线天堂小说 | 日韩福利视频网 | 麻豆传媒网站入口 | 男人天堂一区二区 | 爱情岛亚洲品质自拍极速福利网站 | 久草资源网站 | 天堂在线精品视频 | 亚洲天堂岛 | 精品日韩一区二区三区四区 | 国产午夜久久 | 天堂在线免费观看视频 | 无码熟妇αⅴ人妻又粗又大 | 黄色影音 | 成人宗合| 探花国产精品一区二区 | 91av中文字幕 | 日本一本二本三区免费 | 免费看成人片 | 亚州欧美 | 青青草伊人网 | 农村搞破鞋视频大全 | 日韩激情一区二区三区 | 亚洲污污视频 | 日批视频免费看 | www.av在线播放 | 美女扒开大腿让男人桶 | 青春草免费视频 |