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

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

一、Cloudflare API申请

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

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

授予修改DNS的权限:

Cloudflare API Tokens

之后是找到域名的Zone ID,Cloudflare 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 GO(www.vpsgo.com)分享的Python使用Cloudflare API动态修改域名DNS记录的教程了,还是非常简答方便的。

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

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


【AD】DMIT美国洛杉矶Pro VPS套餐,$14.9/月起,1G-10Gbps带宽/CN2 GIA线路/有高防GIA可选
【AD】美国洛杉矶CN2 VPS/香港CN2 VPS/日本CN2 VPS推荐,延迟低、稳定性高、免费备份_搬瓦工vps