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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DDNS 服务搭建

發布時間:2024/1/1 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DDNS 服务搭建 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一 、簡介

DDNS(動態域名服務)是將用戶的動態公網ip地址映射到一個固定的域名解析服務上,用戶每次連接網絡的時候客戶端程序就會通過信息傳遞把該主機的動態公網ip地址推送到服務商的域名解析上,服務商提供dns服務進行域名解析

二、環境

  • 域名(以aliyun為例)
  • linux主機

三、準備

1、購買域名

本文是基于aliyun平臺做的實驗

2、添加解析記錄

3、瀏覽器按F12 進入開發者模式獲取recordId值

4、4、獲取accessKeyId、accesssKeySecret值

四、編寫腳本

腳本是基于python 環境寫的

1、安裝python aliyun模塊

pip3 install aliyun-python-sdk-core pip3 install aliyun-python-sdk-alidns pip3 install requests

2、腳本

腳本參考:https://blog.51cto.com/u_15060510/4373806

import json,datetime from json import load from urllib.request import urlopen from aliyunsdkcore.client import AcsClient from aliyunsdkalidns.request.v20150109.DescribeDomainRecordsRequest import DescribeDomainRecordsRequest from aliyunsdkalidns.request.v20150109.UpdateDomainRecordRequest import UpdateDomainRecordRequest i = str(datetime.datetime.now()) newip = load(urlopen('https://api.ipify.org/?format=json'))['ip'] AccessKey_ID = '<accessKeyId>' # 填入accessKeyId Access_Key_Secret = '<accesssKeySecret>' # 填入accesssKeySecret region_id = "<recordId>" # 填入recordId DomainName = '<域名>' # 填入域名(如:baidu.com) RR = '<二級域名>' # 填入二級域名(如:www) DomainType = 'A' UpdateDomain = 'Auto_Lines' def AliAccessKey(id,Secret,region):client = AcsClient(id, Secret, region)return client def GetDNSRecordId(client,DomainName):request = DescribeDomainRecordsRequest()request.set_accept_format('json')request.set_DomainName(DomainName)response = client.do_action_with_exception(request)json_data = json.loads(str(response, encoding='utf-8'))for RecordId in json_data['DomainRecords']['Record']:if RR == RecordId['RR']:return RecordId['RecordId'] def UpdateDomainRecord(client,RecordId):try:request = UpdateDomainRecordRequest()request.set_accept_format('json')request.set_Value(newip)request.set_Type(DomainType)request.set_RR(RR)request.set_RecordId(RecordId)client.do_action_with_exception(request)print("域名:" + DomainName + " 主機:" + RR + " 記錄類型:" + DomainType + " 記錄值:" + newip)except Exception as e:print(i + ' DNS已經更新') def main():client = AliAccessKey(AccessKey_ID,Access_Key_Secret,region_id)RecordId = GetDNSRecordId(client,DomainName)UpdateDomainRecord(client,RecordId) if __name__ == "__main__" :main()

3、在python環境運行即可,如自動更新可以在linux寫定時任務

總結

以上是生活随笔為你收集整理的DDNS 服务搭建的全部內容,希望文章能夠幫你解決所遇到的問題。

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