为解决DDNS更新慢的问题,直接通过cloudflare的API来更新AAAA记录
将下面代码保存成cloudflare_ipv6_update.ps1
[System.Net.ServicePointManager]::SecurityProtocol=[System.Net.SecurityProtocolType]::Tls12
while(1){
$Uri = "http://ipv6.lookup.test-ipv6.com/ip/"
$ret = (Invoke-WebRequest -Uri $Uri)
if ($ret.StatusCode -ne 200) {
"IP获取失败延迟10秒"
Start-Sleep -Seconds 10
continue
}
$lookup_ipv6 = ConvertFrom-Json $ret.Content
$ZoneId = "e57eb1bcf0f071d7a39b281f7ab4b231" #填写CF域名编号
$Uri = "https://api.cloudflare.com/client/v4/zones/" + $ZoneId + "/dns_records?type=AAAA"
$Headers = @{}
$Headers."Content-Type" = "application/json"
$Headers."X-Auth-Email" = "www@firadio.com" #填写CF账号
$Headers."X-Auth-Key" = "11111111111111111111" #填写CF密钥
$ret = (Invoke-WebRequest -Uri $Uri -Headers $Headers)
if ($ret.StatusCode -ne 200) {
"域名记录获取失败延迟10秒"
Start-Sleep -Seconds 10
continue
}
$dns_record_1 = ConvertFrom-Json $ret.Content
#$ResponseBody.result.id
if ($dns_record_1.result.content -eq $lookup_ipv6.ip) {
"IP没有变化延迟10秒.."
Start-Sleep -Seconds 10
continue
}
$Uri = "https://api.cloudflare.com/client/v4/zones/" + $ZoneId + "/dns_records/" + $dns_record_1.result.id
$Json = @{}
$Json.type = $dns_record_1.result.type
$Json.name = $dns_record_1.result.name
$Json.content = $lookup_ipv6.ip
$Body = ConvertTo-Json $Json
$Body
Invoke-WebRequest -Method Put -Uri $Uri -Headers $Headers -Body $Body
Start-Sleep -Seconds 1
}