为解决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 = "11111" #填写CF域名编号 $Uri = "https://api.cloudflare.com/client/v4/zones/" + $ZoneId + "/dns_records?type=AAAA" $Headers = @{} $Headers."Content-Type" = "application/json" $Headers."X-Auth-Email" = "[email protected]" #填写CF账号 $Headers."X-Auth-Key" = "1111" #填写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 $Json.proxied = [Bool]1 $Body = ConvertTo-Json $Json $Body Invoke-WebRequest -Method Put -Uri $Uri -Headers $Headers -Body $Body Start-Sleep -Seconds 1 }