Cloudflare 批量删除 DNS 解析
域名从 name.com 转到 Cloudlare 以后导入了一大堆记录,总共有一百多条没用的解析。本想通过导入导出的方式覆盖,发现覆盖不了,但是 Cloudflare 的控制台又没有批量删除解析的功能,一条一条删实在太麻烦。只能通过 Cloudflare 的 API 功能来实现批量删除解析。
一、创建 API 令牌
1.1、打开 用户 API 令牌 页面,点击 创建令牌
。
https://dash.cloudflare.com/profile/api-tokens

点击使用模板

在 区域资源 右侧的下拉列表列表中选择你需要批量删除解析的域名,点击继续

1.2、点击创建令牌

保存令牌备用

二、找到区域 ID
打开域名的概述页,下拉网页,在右下角找到 区域 ID。

三、执行批量删除
注意:脚本会删除指定域名的所有解析!
请将以下的 <API TOKEN>
替换为你之前创建的 API 令牌,将 <ZONE ID>
替换为域名的区域 ID。
然后右键脚本,点击 使用 PowerShell 运行
,等待执行完成即可
Windows
如果你使用 Windows 系统,请使用以下 PowerShell 脚本。
$API_TOKEN = "<API TOKEN>"
$ZONE_ID = "<ZONE ID>"
$baseUrl = "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records"
$headers = @{
'Authorization' = "Bearer $API_TOKEN"
'Content-Type' = "application/json"
}
$listUrl = $baseUrl + '?per_page=500'
Write-Host $listUrl
$records = Invoke-RestMethod -Uri $listUrl -Method 'GET' -Headers $headers
$records = $records | Select-Object -ExpandProperty result
foreach ($record in $records) {
Write-Host "Deleting $($record.name) that points to $($record.content)"
$deleteUrl = $baseUrl + '/' + $record.id
Invoke-RestMethod -Uri $deleteUrl -Method 'DELETE' -Headers $headers
Write-Host $deleteUrl
}
macOS / Linux / BSD / Termux
请使用以下 Python 脚本。
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)
使用方法:
- 首先安装 Python 环境和
requests
库(如果没有安装的话)。 - 然后将脚本中的
<API TOKEN>
替换为你之前创建的 API 令牌,将<ZONE ID>
替换为域名的区域 ID。 - 在脚本目录打开终端,并执行命令
python3 cf-del-records.py
,等待执行完成即可。
注
1、本地计算机需要在设置中查找开发者选项,并允许开发者选择中本地运行powershell脚本。

2、参考链接:
Member discussion