DNSPod DDNS 动态域名设置


所谓动态域名,就是当你的服务器 IP 地址发生变化的时候,自动地修改你在「域名解析服务商」那里的域名记录值

怎么操作?看官方文档
DNSPod用户API文档

首先需要创建 Token
完整的 API Token 是由 ID,Token 组合而成的,用英文的逗号分割

用刚创建的 API Token 测试一下:

$curl -X POST https://dnsapi.cn/Info.Version -d 'login_token=LOGIN_TOKEN&format=json'
{"status":{"code":"1","message":"4.6","created_at":"2021-06-27 22:04:23"}}

code 返回 1 表示「操作成功」,下一步就可以修改记录了

修改 record 用两个 API 就够了:
记录列表 和 更新动态DNS记录

$curl -X POST https://dnsapi.cn/Record.List -d 'login_token=LOGIN_TOKEN&format=json&domain_id=12600793&sub_domain=www&record_type=A&offset=0&length=3'

$curl -X POST https://dnsapi.cn/Record.Ddns -d 'login_token=LOGIN_TOKEN&format=json&domain_id=2317346&record_id=16894439&record_line_id=10%3D0&sub_domain=www'

其中 domain_id=123456 可以换成 domain=yourdomain.com,sub_domain= 记得也修改成你自己的记录
从 Record.List 返回消息中,可以找到你所请求的子域名的 record_id,和该记录所指向的 IP 地址,如果该 IP 值跟你将要设置的 IP 相同,就不要再进行下一步了

如果1小时之内,提交了超过5次没有任何变动的记录修改请求,该记录会被系统锁定1小时,不允许再次修改。比如原记录值已经是 1.1.1.1,新的请求还要求修改为 1.1.1.1。

Record.Ddns value 改成新的 IP 地址,操作成功之后 TTL 会变成 10,此时才变成了真正的「动态域名」

写成 python 脚本:

DNSPod 动态域名设置