在ChatGPT的帮助下我有了以下脚本:
#/bin/bash
# 设置Cloudflare的API密钥、电子邮件地址和区域ID
api_key=""
email=""
zone_identifier=""
record_identifier=""
# 设置要更新的DNS记录的信息
record_name="aaa.example.com"
proxied=false
record_type="AAAA"
comment="IPv6 update"
#以IPv6为例
ipv6_address=""
curl --request PUT \
--url "https://api.cloudflare.com/client/v4/zones/${zone_identifier}/dns_records/${record_identifier}" \
--header 'Content-Type: application/json' \
--header "X-Auth-Email: ${email}" \
--header "X-Auth-Key: ${api_key}" \
--data "{
\"content\": \"${new_ipv6_address}\",
\"name\": \"${record_name}\",
\"proxied\": ${proxied},
\"type\": \"${record_type}\",
\"comment\": \"${comment}\"
}"
其中的空项大都可以通过登录CloudFlare查询到。需要注意的是record_identifier
一项,它也需要通过api获取:
#curl -X GET "https://api.cloudflare.com/client/v4/zones/$zone_ID/dns_records" -H "X-Auth-Email: " -H "X-Auth-Key: " -H "Content-Type: application/json"
在上述命令中替换上自己的zone_ID
、电子邮件和X-Auth-Key
即可获得一个包含了record_identifier
的.json
文件。
至于我为什么以IPv6为例呢?看到DDNS,看到IPv6...自然是因为可以通过这样来实现用家里云提供公网服务啦。