Cloudflare删除域名所有DNS解析记录方法
有时候将一个现有域名添加到Cloudflare时,系统自动导入的几百个不正确的解析记录,几个还好,但是几百个删除要用不少时间,所以使用SHELL脚本删除所有DNS解释记录,是最好的解决方法。
解决方法
- 创建一个有DNS写权限的API_TOKEN(操作地址 https://dash.cloudflare.com/profile/api-tokens)
- 查看待操作域名的 ZONE_ID(在域名概要页面右下角可以看到)
- 在命令行输入SH脚本命令:
wget -O cdad.sh https://code.807070.xyz/sh/cdad.sh && bash cdad.sh
原代码:
#!/bin/bash
# Cloudflare删除域名所有DNS解析记录代码
# 获取Cloudflare API密钥
read -p "Enter your Cloudflare API Token:" API_TOKEN
# 获取要管理的域的区域ID
read -p "Enter the Zone ID:" ZONE_ID
# 设置每页的记录数
PER_PAGE=100
# 初始化分页变量
PAGE=1
HAS_MORE=true
# 循环直到没有更多记录为止
while [ "$HAS_MORE" = true ]; do
# 获取当前页面的DNS记录
curl -X GET "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records?page=$PAGE&per_page=$PER_PAGE" \
-H "Authorization: Bearer $API_TOKEN" \
-H "Content-Type: application/json" \
-s -o records.json
# 检查是否还有更多记录
HAS_MORE=$(jq -r '.result_info.more' records.json)
# 解析JSON响应以获取记录ID
RECORD_IDS=$(jq -r '.result[].id' records.json)
# 循环遍历每个记录ID并删除
for RECORD_ID in $RECORD_IDS; do
curl -X DELETE "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records/$RECORD_ID" \
-H "Authorization: Bearer $API_TOKEN" \
-H "Content-Type: application/json" \
-s
done
# 递增页面编号以进行下一次迭代
PAGE=$((PAGE + 1))
done
更多: