Godaddy的DDNS设置简易shell脚本

给我的Godaddy域名通过DDNS自动更新IPV6,通过shell实现
另python版:https://github.com/anshengme/ddns/blob/master/godaddy_for_python.py
进去https://developer.godaddy.com/keys查询KEY和SECRET,没有需要新建,注意新建后马上记录。
ssh进入需要开通自动更新的linux系统(或本地创建后上传)

cd /home/***/
touch gd-ddns.sh && chmod -x gd-ddns.sh
vi gd-ddns.sh

粘贴以下内容:

#!/bin/bash

#这里是你购买的域名
mydomain="domain.xyz"
#这里是dns配置中的名称
myhostname="router"
#这里key和Secret之间注意有个冒号
gdapikey="你的key:你的Secret"
logdest="local7.info"
ttl_time="1800"
#另外注意,我这里的ipv6地址,所以使用的是AAAA类型解析,如果是ipv4那么下面所有的AAAA需改为A

#这里的地址也是为ipv6服务,ipv4地址为https://api.ipify.org
myip=`curl -s "https://api6.ipify.org"`
dnsdata=`curl -s -X GET -H "Authorization: sso-key ${gdapikey}" "https://api.godaddy.com/v1/domains/${mydomain}/records/AAAA/${myhostname}"`
gdip=`echo $dnsdata | cut -d ',' -f 1 | tr -d '"' | cut -d ":" -f 2-9`
echo "`date '+%Y-%m-%d %H:%M:%S'` - Server current IP is $myip, GoDaddy DNS IP is $gdip"

if [ "$gdip" != "$myip" -a "$myip" != "" ]; then
    echo "Server IP has changed! Updating on GoDaddy..."
    curl -s -X PUT "https://api.godaddy.com/v1/domains/${mydomain}/records/AAAA/${myhostname}" -H "Authorization: sso-key ${gdapikey}" -H "Content-Type: application/json" -d "[{\"data\": \"${myip}\",\"ttl\":$ttl_time}]"
    logger -p $logdest "Changed IP on ${hostname}.${mydomain} from ${gdip} to ${myip}"
    else
        echo "IP has not changed.NO UPDATING!"
fi

保存文件后可以运行测试一下是否返回Server IP has changed! Updating on GoDaddy…
创建计划任务,定时运行脚本
crontab -e
在最下面添加后保存

#每小时的第5分钟运行一次脚本。
    5 * * * * sh /home/XXX/gd-ddns.sh >/dev/null 2>&1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注