基于 DNSPod 开发文档写了个 DDNS 脚本
继上次写过一篇 Cloudflare DDNS 脚本的文章 之后,我便一直有写一个 DNSPod DDNS 脚本的想法。虽然 DNSPod 提供了一个 DDNS 的 API 接口,但是并不是很好用,比如由于其 API 不是双栈的导致无法进行 IPv6 的 DDNS,这就很让人不爽(
于是,这个脚本应运而生,用以解决 DNSPod 在 IPv6 环境下无法 DDNS 的问题
按照惯例,先来推广一下我这个项目的仓库地址,虽然不知道会不会有大佬来提 PR
用法
请提前装好必备的环境,例如 BASH
cURL
下载
通过 GitHub 下载
1 | curl https://raw.githubusercontent.com/Leao9203/dnspod-api-ddns/main/dnspod-ddns.sh > /usr/local/bin/dnspod-ddns.sh && chmod +x /usr/local/bin/dnspod-ddns.sh |
通过 Gitee 下载(国内体验较好)
1 | curl https://gitee.com/Leao9203/dnspod-api-ddns/raw/main/dnspod-ddns.sh > /usr/local/bin/dnspod-ddns.sh && chmod +x /usr/local/bin/dnspod-ddns.sh |
通过 jsDelivr 下载
1 | curl https://cdn.jsdelivr.net/gh/Leao9203/dnspod-api-ddns@main/dnspod-ddns.sh > /usr/local/bin/dnspod-ddns.sh && chmod +x /usr/local/bin/dnspod-ddns.sh |
参数
1 | dnspod-ddns.sh |
顺带一提,脚本在初次运行时会自动在当前用户的目录下的 .config
/dnspod-ddns
生成一个保存 IP 的文件,来判断 IP 是否更新。如果目录不存在会自动创建。
设置 crontab 自动更新
1 | */1 * * * * dnspod-ddns.sh 附加参数 |
频率为每分钟检查一次 IP 是否更新,如果觉得太频繁可以把 1
改为其他数值(小于 60 的整数)
其他用法
除了通过附加参数来使用,也可以直接修改脚本内的一些变量来使用,脚本内已经加了注解,修改第 4 行至第 22 行的变量内容即可。
创建 DNSPod 的 Token 教程
在看了上面的用法之后,可能有部分人士仍对用法有一些疑惑,这里进行一次演示
打开 DNSPod 的 Token 管理页面
https://console.dnspod.cn/account/token/token
点击 创建密钥
,并进行相应的身份验证
然后给新创建的密钥取一个响当当的名字
将新创建的 ID 和 Token 值保存下来,并勾选 温馨提示
的内容
之后,按照上面的用法使用即可
天哪,我的老伙计,我都说的这么详细了,我敢打赌,你一定会用的,我向圣母玛利亚保证。如果你还是不会,我保证,我一定用皮靴狠狠地踢你的屁股
LICENSE相关
为了爱与和平,为了便于本脚本的传播及造福群众,脚本的版权 LICENSE 设置为了非常宽松的 MIT 许可证,希望能给各位有需要的小伙伴做出一些绵薄的贡献吧
后记
说起来,我要写一个 DNSPod 的 DDNS 脚本的 Flag 都已经立下了快一年了,现在才写出来,真的笑嘻辽
咕王的实力.jpg
下一步的计划应该是给阿里云的 DNS 写一个 DDNS 的 Shell 脚本,前提是如果没别的大佬写过的话(
参考
- Linux Shell | 解析xml节点的值 - SegmentFault 思否
- Linux下grep显示前后几行信息 - 腾讯云开发者社区-腾讯云
- 2019-01-08写正则表达式grep抓取对应html标签 - 简书
- IDEA和VS code设置默认换行符为LF_Xeon-Shao的博客-CSDN博客_vscode 默认lf
- ShellCheck: SC2220 – Invalid flags are not handled. Add a
*)
case. - Ghost-in-the-shell busters: your guide to using ShellCheck for top quality scripts - Exasol
- chrome有复制标签标题和URL的快捷键吗,没有的话怎么解决需要经常复制的问题? - 知乎
- DNSPod 文档中心 - 腾讯云 DNSPod - 国民级 DNS 服务平台_智能DNS_免费_域名_解析
- shell判断文件是否存在 - SunBo - 博客园
- 【Linux】Shell命令 getopts/getopt用法详解_镰刀韭菜的博客-CSDN博客_getopt getopts
- vscode 换行符\n 变成\r\n-阿里云开发者社区
- Mac安装新版本Bash | Happy Hack Everday
- curl 的用法指南 - 阮一峰的网络日志
- LINUX脚本改XML文件,在shell脚本中使用sed命令在XML文件中添加XML元素_薛颠的博客-CSDN博客
- grep无法查找shell传过来的变量?先注意一下文本格式吧! - 腾讯云开发者社区-腾讯云
- Linux grep 命令 | 菜鸟教程
- Shell 变量 | 菜鸟教程
- Linux sed 命令 | 菜鸟教程
- Linux cat 命令 | 菜鸟教程