日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

DDNS 服务搭建

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

一 、簡介

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

二、環(huán)境

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

三、準備

1、購買域名

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

2、添加解析記錄

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

4、4、獲取accessKeyId、accesssKeySecret值

四、編寫腳本

腳本是基于python 環(huán)境寫的

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已經(jīng)更新') def main():client = AliAccessKey(AccessKey_ID,Access_Key_Secret,region_id)RecordId = GetDNSRecordId(client,DomainName)UpdateDomainRecord(client,RecordId) if __name__ == "__main__" :main()

3、在python環(huán)境運行即可,如自動更新可以在linux寫定時任務(wù)

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。