前言#
當我們在國外大廠域名平台購買域名後,修改 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