cloudflare 一直是我这种免费党中的良心平台,光是域名托管这一项,简直不要太好用了。
不过CF的域名DNS托管,不能批量的编辑DNS解析的条目。
今天我在整理一个域名时,发现之前安装了一台邮件服务器时,批量的导入了非常多的DNS解析条目,全部的加起来有60多条,这一条一条删除,不知道要删除到什么时候去。
上网找了一下,是可以使用cloudflare的API接口,用脚本去快速删除这些条目的。
获取API TOKEN
首先,打开 https://dash.cloudflare.com/profile/api-tokens ,点击左侧的AIP令牌,点击创建令牌。
点击编辑区域DNS的使用模板
更改区域资源里,指定你要编辑的域名,或是全部域名。
最后复制产生出来的令牌。
获取域名的区域ID
在域名的概述页面,右下角有一个区域ID,记下这个ID。
使用PowerShell脚本批量删除
使用以下脚本,快速批量一次性删除所有解析条目。
$API_TOKEN = "xxxxxxxxxxxxxxxxxxxxxxxxx"
$ZONE_ID = "xxxxxxxxxxxxxxxxxxxxxxxx"
$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后面的XXX,替换成你的令牌,ZONE_ID后面的XXX替换成你的区域ID。
然后将代码,粘贴到PowerShell命令终端里,回车即可看到删除的所有输出日志。
其他
上面这个脚本,会一下子全部删除掉解析,建议先做好解析条目的备份,导出就可以了。
也有一些开源的脚本,没仔细研究,有兴趣的可以试试。
https://github.com/Cyb3r-Jak3/cloudflare-utils
本文由 admin 创作,采用 知识共享署名4.0 国际许可协议进行许可。
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。