免费领了个二级域名,转到CF后自动给我添加了370多条记录,我直接**。CF有没有批量删除的功能,一条一条删是不可能的→_→,因此我就,在网上找方法,所以就有了这个笔记,以备不时之需,主要是怕忘。

准备工作

  1. 创建API令牌
  2. 去下载Termux

创建API令牌

  1. 点击你要创建API令牌的域名,然后再概述里面点击 [label color=”orange”]获取您的API令牌[/label]
    获取您的API令牌

  2. 然后点击 [label color=”orange”]创建令牌[/label]
    创建令牌

  3. 然后点击编辑区域 DNS 后的 [label color=”orange”]使用模板[/label]
    使用模板

  4. 之后在 [label color=”orange”]特定区域[/label] 选择你需要批量删除解析的域名
    特定区域

  5. 在之后它会自动跳到一个页面点击 [label color=”orange”]创建令牌[/label] 就行
    创建令牌

  6. 最后 [label color=”orange”]复制令牌[/label] 就行了
    复制令牌

区域ID

点击域名在概述里面复制区域ID就行了,就在创建API令牌的上面

批量删除脚本

注意要将 [label color=”orange”]API TOKEN[/label] 替换为你之前创建的 API 令牌,将 [label color=”orange”]ZONE ID[/label] 替换为域名的区域 ID

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import requests

API_TOKEN = "API TOKEN"
ZONE_ID = "ZONE ID"

baseUrl = f"https://api.cloudflare.com/client/v4/zones/{ZONE_ID}/dns_records"

headers = {
'Authorization': f'Bearer {API_TOKEN}',
'Content-Type': 'application/json'
}

listUrl = f"{baseUrl}?per_page=500"
print(listUrl)
response = requests.get(listUrl, headers=headers)
records = response.json()['result']

for record in records:
name = record['name']
content = record['content']

print(f"Deleting {name} that points to {content}")

deleteUrl = f"{baseUrl}/{record['id']}"
requests.delete(deleteUrl, headers=headers)
print(deleteUrl)

使用方法

先去下载Termux

下载python命令,执行完之后他会问你一些问题直接全 [label color=”orange”]Y[/label]

1
pkg install python

安装完成之后创建文件,复制粘贴好你修改的脚本。Ctrl+O保存,然后点击回车,最后Ctrl+X退出

1
nano script.py

最后就执行脚本,开始删除

1
python script.py