shell腳本實現GoDaddy中IPv6的動態域名解析(DDNS)_可在路由中運行


  首先談一下個人的需求,家里路由拿到了運營商的外網ipv6地址,於是想着將路由的各種服務通過DDNS放到外網上來,這才有下面的動態域名解析折騰。廢話不多說,進入正題。

1、首先在godaddy中注冊域名,這一點不是本文重點,先掠過。

2、配置DNS,如圖:

  (注意第二條router的解析記錄,正是需要通過腳本調用官方api動態更新這一條解析,我這里是ipv6地址,所以是AAAA,如果是ipv4那么選擇A類型。)

3、進入 https://developer.godaddy.com/keys 創建key和Secret並記錄下來。

3、shell腳本內容:

  

#!/bin/bash

#這里是你購買的域名
mydomain="domain.xyz"
#這里是dns配置中的名稱
myhostname="router"
#這里key和Secret之間注意有個冒號
gdapikey="你的key:你的Secret"
logdest="local7.info"
#另外注意,我這里的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}"`
#這里最后的2-9是針對性取得ipv6的字符,dnsdata中的返回字符串是一個json格式,需對齊解析。 gdip
=`echo $dnsdata | cut -d ',' -f 1 | tr -d '"' | cut -d ":" -f 2-9` echo "`date '+%Y-%m-%d %H:%M:%S'` - Current External IP is $myip, GoDaddy DNS IP is $gdip" if [ "$gdip" != "$myip" -a "$myip" != "" ]; then echo "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}\"}]" logger -p $logdest "Changed IP on ${hostname}.${mydomain} from ${gdip} to ${myip}" fi

 

  到這里已經差不多了,有一定基礎的朋友可以在Linux環境(比如路由中)分步測試腳本,如果沒有問題可以在godaddy的dns管理頁面及時看見修改結果,本腳本在padavan中測試成功,預計在類openwrt的路由中應該都能運行。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM