DNSPOD DDNS


自動獲取公網 IP,修改 DNSPOD 上的記錄值。

接口地址:

  • https://dnsapi.cn/Record.Modify

請求參數:

  • domain_id 或 domain, 分別對應域名ID和域名, 提交其中一個即可
  • record_id 記錄ID,必選
  • sub_domain 主機記錄, 如 www,可選,如果不傳,默認為 @
  • record_type 記錄類型,通過API記錄類型獲得,大寫英文,比如:A,必選
  • record_line 記錄線路,通過API記錄線路獲得,中文,比如:默認,必選
  • record_line_id 線路的ID,通過API記錄線路獲得,英文字符串,比如:‘10=1’ 【record_line 和 record_line_id 二者傳其一即可,系統優先取 record_line_id】
  • value 記錄值, 如 IP:200.200.200.200, CNAME: cname.dnspod.com., MX: mail.dnspod.com.,必選
  • mx {1-20} MX優先級, 當記錄類型是 MX 時有效,范圍1-20, mx記錄必選
  • ttl {1-604800} TTL,范圍1-604800,不同等級域名最小值不同,可選
  • status [“enable”, “disable”],記錄狀態,默認為”enable”,如果傳入”disable”,解析不會生效,也不會驗證負載均衡的限制,可選
  • weight 權重信息,0到100的整數,可選。僅企業 VIP 域名可用,0 表示關閉,留空或者不傳該參數,表示不設置權重信息

腳本(dnspod.ps1,每間隔 5 分鍾更新一次):

[string]$original_ip = ""

while($true) {
    #http://ip.taobao.com/outGetIpInfo?ip=myip&accessKey=alibaba-inc
    #https://httpbin.org/ip
    #https://myip.ipip.net/
    #https://ip.sb/
    #https://ifcfg.cn/echo

    #(curl "http://ip-api.com/line/?fields=query" -UseBasicParsing).Content;
    $body = Invoke-WebRequest -Uri "http://ip.03k.org/"
    #$body = Invoke-WebRequest -Uri "http://ip-api.com/line/?fields=query"
    $ip = $null
    if ($body.StatusCode -eq 200) {
        [string]$ip = $body.ParsedHtml.body.innerHTML
        #$StartIndex = $str.IndexOf("[")
        #$EndIndex = $str.IndexOf("]")
        #$length = $EndIndex - $StartIndex - 1
        #$ip = $str.Substring($StartIndex + 1, $length)
        
        #echo $(Get-Date) $ip;
        Write-Host "$(Get-Date): $ip"
    } else {
        Write-Warning "Bad Request"
    }

    if ($original_ip -eq $ip) {
        echo $(Get-Date) $ip;
    } else {
        $uri = "https://dnsapi.cn/Record.Modify"
        $p_token = "login_token=264834,3b838d71d5s3a3cafd6f4ebe87e66ea1"
        $p_record_line_id = "record_line_id=10%3D0"
        $p_record_id = "record_id=526860736"
        $p_value = "value=" + $ip
        $p_sub_domain = "sub_domain=@"
        $p_record_type = "record_type=A"
        $p_domain = "domain=baidu.com"

        curl.exe -X POST $uri `
                -d $p_token `
                -d $p_record_line_id `
                -d $p_record_id `
                -d $p_value `
                -d $p_sub_domain `
                -d $p_record_type `
                -d $p_domain

        echo `;

        $original_ip = $ip
    }

    Sleep 300
}
# pause

一般修改三處值即可:

p_token:格式為 ID,TOKEN

p_record_id:在網頁手動修改一次,查看發送的 HTTP 請求,可以獲取到修改域名的 record_id

p_domain:要修改的記錄所對應的域名


https://www.dnspod.cn/docs/records.html#record-modify

https://docs.microsoft.com/zh-cn/powershell/module/microsoft.powershell.utility/invoke-webrequest

https://www.ruanyifeng.com/blog/2019/09/curl-reference.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM