由于 Cloudflare 的控制台没有批量删除解析的功能,一条一条删很麻烦。不过我们可以通过 Cloudflare 的 API 功能来实现批量删除解析,准确地讲是全部删除,目前还不能实现删除指定的解析。
创建 API 令牌
打开 用户 API 令牌 页面,点击 创建令牌
。

然后点击 编辑区域 DNS 后的 使用模板
按钮。

接着在 特定区域 右侧的下拉列表列表中选择你需要批量删除解析的域名。

翻到网页底部,点击 继续以显示摘要
。

点击 创建令牌
。

复制虚线框内的令牌,保存备用。

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

执行批量删除
注意:脚本会删除指定域名的所有解析!
请将以下的 <API TOKEN>
替换为你之前创建的 API 令牌,将 <ZONE ID>
替换为域名的区域 ID。
Windows
如果你使用 Windows 系统,请使用以下 PowerShell 脚本。(此脚本来自 Cloudflare 论坛)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| $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 }
|
使用方法:
首先将脚本中的 <API TOKEN>
替换为你之前创建的 API 令牌,将 <ZONE ID>
替换为域名的区域 ID。
然后右键脚本,点击 使用 PowerShell 运行
,等待执行完成即可。
macOS / Linux / BSD / Termux
如果你使用其他操作系统,请使用以下 Python 脚本。
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)
|
使用方法:
首先安装 Python 环境和 requests
库(如果没有安装的话)。
然后将脚本中的 <API TOKEN>
替换为你之前创建的 API 令牌,将 <ZONE ID>
替换为域名的区域 ID。
在脚本目录打开终端,并执行命令 python3 cf-del-records.py
,等待执行完成即可。