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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

利用Cloudflare + Python 免费开启(IPV4/IPV6)DDNS

發(fā)布時間:2024/1/1 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 利用Cloudflare + Python 免费开启(IPV4/IPV6)DDNS 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

    • 前言
    • 準(zhǔn)備條件
    • 添加域名
    • 獲取賬戶API_Key
    • 創(chuàng)建腳本
    • 執(zhí)行腳本
    • 自動化設(shè)置
      • ????????開機(jī)啟動
      • ????????定時啟動(每五分鐘啟動一次)
    • 參考鏈接

前言

為什么需要DDNS?
當(dāng)然是你沒有固定的公網(wǎng)IP地址,這是就需要DDNS,使DNS服務(wù)器準(zhǔn)確解析你的IP

準(zhǔn)備條件

  • 將域名接入Cloudflare
  • 服務(wù)器存在Python3環(huán)境

添加域名

  • 打開Cloudflare官網(wǎng)并登錄
  • 點擊需要DDNS的主域名再在選擇欄選擇DNS

  • 3. 添加一條域名解析, 名稱和IP地址可自定義

    4. 打開開發(fā)者工具點擊Network
    5. 點擊剛剛添加的域名,再重新隨便寫入一個IP地址,并保存

    6. 回到network面板,如示例圖示

    https://dash.cloudflare.com/api/v4/zones/111/dns_records/222

    其中111為區(qū)域 ID, 222為DNS解析ID
    將這兩個ID記下來, 等一會要用

    獲取賬戶API_Key

    點擊右上角用戶頭像—我的個人資料—上方欄我API令牌

    創(chuàng)建腳本

    在代碼main區(qū)域內(nèi)填寫對信息:

    區(qū)域 ID, DNS解析ID, 賬號注冊郵箱, API_Key, 解析的域名
    注意:區(qū)域 ID, DNS解析ID, API_Key 是固定不變的
    而DNS解析ID, 解析域名等在每條解析下是不一樣的

    # -*- coding = utf-8 -*- # @Author: yinzs Wang # @Time: 2021/1/31 8:41 # @File: DDNS_IPV6.py # @Software: PyCharmimport urllib3 import jsondef askApi(accountInfo, dnsInfo):apiUrl = 'https://api.cloudflare.com/client/v4/zones/%s/dns_records/%s' % (accountInfo['zones'], dnsInfo['dns_records'])dnsInfo.pop('dns_records')body = json.dumps(dnsInfo)headers = {'user-agent': 'Mozilla/5.0','X-Auth-Email': accountInfo['email'],'X-Auth-Key': accountInfo['api'],'Content-Type': 'application/json'}res = urllib3.PoolManager().request("PUT", apiUrl, body=body, headers=headers)if res.status == 200:return print(dnsInfo['name'] + ": Success!")else:return print(dnsInfo['name'] + ": Fail!")if __name__ == '__main__':# 獲取IP地址ipv4 = urllib3.PoolManager().request(method="GET", url="https://ipv4.icanhazip.com").data.decode().rstrip()ipv6 = urllib3.PoolManager().request(method='GET', url='http://ipv6.icanhazip.com').data.decode().rstrip()# 賬戶信息(固定)(全部填寫)accountInfo = {'email': 'example@qq.com','zones': 'example','api': 'example'}# 請求api實現(xiàn)DDNS 域名解析信息(變化)(按需填寫)askApi(accountInfo, dnsInfo={'dns_records': 'example',# DNS解析ID'type': 'A',# A 記錄'name': 'example.cc', #解析的域名'content': ipv4, #ipv4地址'ttl': 120,# TTL'proxied': True # 是否開啟Cloudflare})askApi(accountInfo, dnsInfo={'dns_records': 'example','type': 'AAAA','name': 'ddns.example.cc','content': ipv6,'ttl': 120,'proxied': True})

    執(zhí)行腳本

    先用SSH鏈接服務(wù)器,執(zhí)行下面的代碼

    mkdir -p data/python3/ddns
    vim

    添加修改后腳本代碼

    :wq data/python3/ddns/ddns.py

    python3 data/python3/ddns/ddns.py

    如果顯示 Success! 代表程序執(zhí)行成功, 這時去Cloudflare查看域名IPV6地址是否改變:
    ????????如果改變, 那么恭喜你DDNS可以使用,
    ????????否則檢查自己操作是否有誤或者腳本失效

    自動化設(shè)置

    ????????開機(jī)啟動

    vi /etc/rc.d/rc.local

    /bin/python3 /data/python3/ddns/ddns.py

    :wq

    ????????定時啟動(每五分鐘啟動一次)

    crontab -e

    */5 * * * * /bin/python3 /data/python3/ddns/ddns.py

    :wq

    service crond restart

    參考鏈接

    • 基于 Cloudflare DNS API 部署 IPv6 DDNS

    總結(jié)

    以上是生活随笔為你收集整理的利用Cloudflare + Python 免费开启(IPV4/IPV6)DDNS的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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