在DDNS 动态域名服务中介绍了DDNS的含义,本文记录:使用python语言,基于百度域名解析更新API,封装设计成自动同步本地IP的DDNS工具。
前置条件 {#前置条件}
- 具有 DDNS 需求 (IPv4 或 IPv6)
- 申请了百度云域名 (其他家的域名本文方法不适用)
- 了解DDNS (DDNS 动态域名服务)
- 可以运行python程序
核心实现 {#核心实现}
将百度 API 中的DNS 更新模块封装成一个工程,简单介绍功能和核心实现
功能 {#功能}
- 动态获取本机指定 IP
- 自动对比当前本地 IP 与域名指向的IP
- 当本地 IP 发生变化时自动向远程同步
- 可以同步 A 记录(IPv4)和 AAAA 记录(IPv6)
- 可以配置同步频率,同步IP类型
- 保留较为完整的日志
获取本机 IP {#获取本机-IP}
获取本机IP的核心代码,可以获取 IPv4 或 IPv6 的地址
- 其中
ip_type
为IP类型,可为IPv4
或IPv6
获取当前 DNS 信息 {#获取当前-DNS-信息}
需要获取当前DNS 状态,以判断是否需要更新
- 其中
domain
为二级域名名称
更新DNS记录 {#更新DNS记录}
构造更新DNS所需的报文格式
注意 :如果地址为 IPv6,地址中的字母需要大写
其中 logger
为日志对象
DDNS 配置使用 {#DDNS-配置使用}
下载代码 {#下载代码}
更改配置 {#更改配置}
- 在
assets/config.json
中配置域名
、Access Key
、Secret Key
- 在
main.py
文件中配置检测时间间隔
,二级域名名称
,IP类型
运行程序 {#运行程序}
示例日志 {#示例日志}
参考资料 {#参考资料}
- https://cloud.baidu.com/doc/BCD/s/4jwvymhs7
- https://blog.csdn.net/weixin_42169081/article/details/119299368
文章链接:
https://www.zywvvd.com/notes/coding/python/baidu-ddns/baidu-ddns/