使用Cloudflare API动态修改域名DNS记录教程(Python代码)

本文目录
隐藏
1
一、Cloudflare API申请
2
二、Cloudflare DNS记录动态

便宜vps主机很多域名都放在Cloudflare解析,方便统一管理。今天给大家分享一个Cloudflare API的使用教程,通用Python代码实现动态修改域名DNS记录,指向目标IP地址。

一、Cloudflare API申请

首先要确保我们的域名已经通过Cloudflare解析了,设置教程可以参考之前的说明:

  • 《域名解析教程:Cloudflare解析与DNSPod解析》

之后需要申请一个Cloudflare API Tokens,申请地址:https://dash.cloudflare.com/profile/api-tokens

授予修改DNS的权限:

之后是找到域名的Zone ID,Cloudflare Zone ID是每个域名都不一样的,在域名首页可以看到:

二、Cloudflare DNS记录动态

直接分享Python代码,分为两步:先获取域名DNS记录的ID,再通过ID修改解析记录,这里以A记录为例。

1、获取DNS记录的id

dns_name即解析的域名地址,如www.vpsgo.com

def get_record_id(dns_name, zone_id, token):
    resp = requests.get(
        'https://api.cloudflare.com/client/v4/zones/{}/dns_records'.format(zone_id),
        headers={
            'Authorization': 'Bearer ' + token,
            'Content-Type': 'application/json'
        })
    if not json.loads(resp.text)['success']:
        return None
    domains = json.loads(resp.text)['result']
    for domain in domains:
        if dns_name == domain['name']:
            return domain['id']
    return None

2、更新此 DNS 记录

dns_id就是上一步获取的id,ip是需要解析至的目标ip,proxied就是是否开启Cloudflare CDN

def update_dns_record(dns_name, zone_id, token, dns_id, ip, proxied=False):
    resp = requests.put(
        'https://api.cloudflare.com/client/v4/zones/{}/dns_records/{}'.format(
            zone_id, dns_id),
        json={
            'type': 'A',
            'name': dns_name,
            'content': ip,
            'proxied': proxied
        },
        headers={
            'Authorization': 'Bearer ' + token,
            'Content-Type': 'application/json'
        })
    if not json.loads(resp.text)['success']:
        return False
    return True

以上就是便宜vps主机(www.vpsgo.com)分享的Python使用Cloudflare API动态修改域名DNS记录的教程了,还是非常简答方便的。

如果你需要便宜域名,可以参考:

关于便宜域名的推荐以及域名解析教程的分享,可以参考本站之前的教程:

  • NameSilo 1美元优惠码:《最新NameSilo优惠码和促销活动整理,可优惠1美元》
  • Dynadot 新用户5美元优惠:《5美元Dynadot优惠码分享:.com域名首年$6.99/免费隐私保护》
  • 解析设置教程:《域名解析教程:Cloudflare解析与DNSPod解析》

广告栏+++++++蜜糖商店|大哥云| 搬瓦工JMS|红莓网络| Mielink|萌喵加速| 飞鸟云

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注