搭建服务器 运用阿里云DNS自己实现DDNS
生活随笔
收集整理的這篇文章主要介紹了
搭建服务器 运用阿里云DNS自己实现DDNS
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
異想之旅:本人原創博客完全手敲,絕對非搬運,全網不可能有重復;本人無團隊,僅為技術愛好者進行分享,所有內容不牽扯廣告。本人所有文章僅在CSDN、掘金和個人博客(一定是異想之旅域名)發布,除此之外全部是盜文!
先說需求:我在家里有一臺服務器,但是沒有靜態IP。之前使用的是花生殼免費的服務,但是后來收費了,就想到自己實現一個。
參考資料:
- API獲取自己的公網IP地址 API查詢IP信息_異想之旅的博客-CSDN博客_獲取公網ip的api
- 阿里云 OpenAPI 開發者門戶
大體的實現思路:
當然,還要加上緩存等東西
保證DNS上有一個這個主機的A解析,然后改好開頭四個變量,掛到服務器就好了(獲取AccessToken:RAM 訪問控制)
主機 = "yxzlownserveraddress" 域名 = "yxzl.top" AccessKey = "AccessKey" SecretKey = "SecretKey"import json import requests import time from aliyunsdkcore.client import AcsClient from aliyunsdkalidns.request.v20150109.DescribeDomainRecordsRequest import DescribeDomainRecordsRequest from aliyunsdkalidns.request.v20150109.UpdateDomainRecordRequest import UpdateDomainRecordRequestclient = AcsClient(AccessKey, SecretKey) # 初始化記錄ID = 舊的IP = "" page_number = 1while True:request = DescribeDomainRecordsRequest()request.set_accept_format("json")request.set_DomainName(域名)request.set_PageNumber(page_number)request.set_PageSize(100)response = client.do_action_with_exception(request)text = str(response, encoding="utf-8")print(json.loads(text))for i in json.loads(text)["DomainRecords"]["Record"]:if i["RR"] == 主機:記錄ID = i["RecordId"]舊的IP = i["Value"]breakif 記錄ID:breakpage_number += 1while True:try:新的IP = requests.get("http://ip.3322.net/").textif 新的IP != 舊的IP:# 更改記錄try:request = UpdateDomainRecordRequest()request.set_accept_format("json")request.set_RecordId(記錄ID)request.set_RR(主機)request.set_Type("A")request.set_Value(新的IP)response = client.do_action_with_exception(request)print("%s\tIP發生了變化(%s -> %s),已進行更新。" % (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()), 舊的IP, 新的IP))except:print("%s\tIP發生了變化(%s -> %s),但更新失敗。" % (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()), 舊的IP, 新的IP))else:print("%s\tIP相同(%s),未進行更改。" %(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()), 新的IP))舊的IP = 新的IPexcept Exception as e:print("%s\t發生錯誤:%s" % (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()), e))# raise epasstime.sleep(90)總結
以上是生活随笔為你收集整理的搭建服务器 运用阿里云DNS自己实现DDNS的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 固态硬盘、机械硬盘工作原理和区别(内附接
- 下一篇: excel数据多列排序