前言#
当我们在国外大厂域名平台购买域名后,修改 NS 到 Cloudflare,经常会出现这种情况
是的,Cloudflare "贴心" 的扫了一大堆没鸟用的记录进去
有 1000 多条的,有 700 多条的,可以说是十分的抽象
为了解决这个问题,我们来通过 API 反复调用来解决这个问题
教程#
开始之前我们需要先获取两个关于 API 的东西
Global Key#
首先我们先要获取你的 Cloudflare 帐号的 Global Key(你要是为了安全自己创建一个带有修改你的区域的 DNS 记录权限的 Key 也行,我图省事直接用 Global Key 了)
点击 Cloudflare 右上角的人,选择我的个人资料
然后去左边找到 API 令牌
然后往下滑找到 Global Key,点击查看
输入密码即可查看
Zone ID#
在 Cloudflare Dashboard 点击你的域名,然后往下滑右边就能看到你的 区域 ID
我们需要记住这两个东西,等会要用
脚本#
这边使用的是 Powershell 脚本,某人的那个有点问题,我拉出来修复了一下
$ZONE_ID = "YOUR_ZONE_ID"
$baseUrl = "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records"
$headers = @{
'X-Auth-Key' = 'YOUR_GLOBAL_KEY'
'X-Auth-Email' = 'YOUR_EMAIL'
'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
}
将以上文件替换好你的信息,然后复制进记事本,保存后改后缀名为 .ps1
然后右键 Run with Powershell
一遍没删干净可以多跑几遍
然后回到 Cloudflare Dashboard
啊,舒服
此文由 Mix Space 同步更新至 xLog
原始链接为 https://blog.nekorua.com/posts/coding/24.html