Last active
June 9, 2021 22:25
-
-
Save HouCoder/bd9b5b1542e5baa5b75be35b5e80a3fd to your computer and use it in GitHub Desktop.
Godaddy DNS record updater.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# https://developer.godaddy.com/keys | |
KEY="" | |
SECRET="" | |
domain="example.com" | |
name="a-record" | |
# Get public IP from ipinfo.io | |
public_ip="$(curl --silent ipinfo.io/ip)" | |
# get current record | |
current_record="$(dig @8.8.8.8 +short $name.$domain)" | |
if [ "$current_record" != "$public_ip" ]; then | |
echo New public IP is $public_ip | |
# Update godaddy A record - https://developer.godaddy.com/doc/endpoint/domains#/v1/recordReplaceTypeName | |
curl -X PUT "https://api.godaddy.com/v1/domains/$domain/records/A/$name" \ | |
-H "Authorization: sso-key $KEY:$SECRET" \ | |
-H 'Content-Type: application/json' \ | |
--data '[{"type": "A", "name": "'"$name"'", "data": "'"$public_ip"'", "ttl": 3600}]' | |
else | |
echo Nothing changed | |
fi |
脚本内容:获取本机的IP地址,并将其上传至Godaddy的相关域名。
应该是获取本机的 IP 地址,与 DNS 服务器上 A 记录指向的地址做对比,不一致的话更新 godaddy 的相关记录。
其实很简单,适用于路由器不支持 DDNS 的网络使用。
我已经在使用你的这个脚本了,刚好可以解决动态IP的问题。
然后执行命令后有个提示说,第13行 dig:未找到命令。
虽然没啥影响,但是强迫症看到提示,就想解决这个问题,请问这是什么原因导致的?
来自新手的疑问。
哦,你需要安装 dig 这个工具,ubuntu 的话应该是 $ sudo apt-get install dnsutils
就可以了。
我用的是centos7提示:line 22: syntax error near unexpected token `fi'
并且我打印echo $current_record打印不出值,有没联系方式教我一下我的q3006139
路由器运行sh
错误提示
[Router /home/id]# ./godaddy_ddns.sh
New public IP is 100.11.xx.xx
curl: (51) Cert verify failed: BADCERT_NOT_TRUSTED
如果我使用跳过
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
则提示
syntax error: unexpected word (expecting ")")
头疼,暂时还没看到godaddy更新ip.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
我这么理解是对的吗?
你提供的内容有:
需要自己添加的命令:
具体玩儿法
1、创建一个xxx.sh 文件,将你的脚本文件复制粘贴,并将 Key、Secret、Domain、Name 填写对应的内容,其它文件不修改,然后保存退出。
2、使用chmod +x * 命令将 xxx.sh文件 改为可执行文件。
3、./xxx.sh 运行一下,然后登陆Godaddy查看是否更新成功
4、创建定时任务,将xxx.sh脚本定时运行。
完。