利用Cloudflare + Python 免费开启(IPV4/IPV6)DDNS |
您所在的位置:网站首页 › cloudflareapi令牌 › 利用Cloudflare + Python 免费开启(IPV4/IPV6)DDNS |
目录
前言准备条件添加域名获取账户API_Key创建脚本执行脚本自动化设置 开机启动 定时启动(每五分钟启动一次)
参考链接
前言
为什么需要DDNS? 当然是你没有固定的公网IP地址,这是就需要DDNS,使DNS服务器准确解析你的IP 准备条件 将域名接入Cloudflare服务器存在Python3环境 添加域名 打开Cloudflare官网并登录点击需要DDNS的主域名再在选择栏选择DNS
其中111为区域 ID, 222为DNS解析ID 将这两个ID记下来, 等一会要用 获取账户API_Key点击右上角用户头像—我的个人资料—上方栏我API令牌 在代码main区域内填写对信息: 区域 ID, DNS解析ID, 账号注册邮箱, API_Key, 解析的域名 注意:区域 ID, DNS解析ID, API_Key 是固定不变的 而DNS解析ID, 解析域名等在每条解析下是不一样的 # -*- coding = utf-8 -*- # @Author: yinzs Wang # @Time: 2021/1/31 8:41 # @File: DDNS_IPV6.py # @Software: PyCharm import urllib3 import json def 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': '[email protected]', 'zones': 'example', 'api': 'example' } # 请求api实现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 }) 执行脚本先用SSH链接服务器,执行下面的代码 mkdir -p data/python3/ddns vim 添加修改后脚本代码 :wq data/python3/ddns/ddns.py python3 data/python3/ddns/ddns.py 如果显示 Success! 代表程序执行成功, 这时去Cloudflare查看域名IPV6地址是否改变: 如果改变, 那么恭喜你DDNS可以使用, 否则检查自己操作是否有误或者脚本失效 自动化设置 开机启动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 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |