有时候将一个现有域名添加到Cloudflare时,系统自动导入的几百个不正确的解析记录,几个还好,但是几百个删除要用不少时间,所以使用SHELL脚本删除所有DNS解释记录,是最好的解决方法。

解决方法

  1. 创建一个有DNS写权限的API_TOKEN(操作地址 https://dash.cloudflare.com/profile/api-tokens
  2. 查看待操作域名的 ZONE_ID(在域名概要页面右下角可以看到)
    2023-12-16 145236.jpg
  3. 在命令行输入:wget -O cdad.sh https://cdn.807070.xyz/code/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

更多:

  1. Docker安装和常用命令
  2. dpkg: 未找到命令 / Dpkg command not found