生活随笔
收集整理的這篇文章主要介紹了
CentOS通过DNSpod实现动态域名
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
因?yàn)榧依锸褂肁DSL動態(tài)IP上網(wǎng),有時在外面需要使用家里資源,原本使用的是TP-LINK自帶的花生殼解析,用過之后發(fā)現(xiàn)很不穩(wěn)定。因?yàn)樽约鹤粤擞蛎惨咽褂昧薉NSPOD解析。
1.新建腳本文件
vim?ddns.sh
文件內(nèi)容如下:
#!/bin/sh#?全局變量表
arPass=arMail=""#?獲得外網(wǎng)地址
arIpAdress()?{local?inter="http://members.3322.org/dyndns/getip"wget?--quiet?--no-check-certificate?--output-document=-?$inter
}#?查詢域名地址
#?參數(shù):?待查詢域名
arNslookup()?{local?dnsvr="114.114.114.114"nslookup?${1}?$dnsvr?|?tr?-d?'\n[:blank:]'?|?awk?-F':'?'{print?$6}'
}#?讀取接口數(shù)據(jù)
#?參數(shù):?接口類型?待提交數(shù)據(jù)
arApiPost()?{local?agent="Ddns/3.08"local?inter="https://dnsapi.cn/${1:?'Info.Version'}"local?param="login_token=${arID},${arToken}&format=json&${2}"wget?--quiet?--no-check-certificate?--output-document=-?--user-agent=$agent?--post-data?$param?$inter
}#?更新記錄信息
#?參數(shù):?主域名?子域名
arDdnsUpdate()?{local?domainID?recordID?recordRS?recordCD#?獲得域名IDdomainID=$(arApiPost?"Domain.Info"?"domain=${1}")domainID=$(echo?$domainID?|?sed?'s/.\+{"id":"\([0-9]\+\)".\+/\1/')#?獲得記錄IDrecordID=$(arApiPost?"Record.List"?"domain_id=${domainID}&sub_domain=${2}")recordID=$(echo?$recordID?|?sed?'s/.\+\[{"id":"\([0-9]\+\)".\+/\1/')#?更新記錄IPrecordRS=$(arApiPost?"Record.Ddns"?"domain_id=${domainID}&record_id=${recordID}&sub_domain=${2}&record_line=默認(rèn)")recordCD=$(echo?$recordRS?|?sed?'s/.\+{"code":"\([0-9]\+\)".\+/\1/')#?輸出記錄IPif?[?"$recordCD"?==?"1"?];?thenecho?$recordRS?|?sed?'s/.\+,"value":"\([0-9\.]\+\)".\+/\1/'return?1fi#?輸出錯誤信息echo?$recordRS?|?sed?'s/.\+,"message":"\([^"]\+\)".\+/\1/'
}
#?動態(tài)檢查更新
#?參數(shù):?主域名?子域名
arDdnsCheck()?{local?postRSlocal?hostIP=$(arIpAdress)local?lastIP=$(arNslookup?"${2}.${1}")echo?"hostIP:?${hostIP}"echo?"lastIP:?${lastIP}"if?[?"$lastIP"?!=?"$hostIP"?];?thenpostRS=$(arDdnsUpdate?$1?$2)echo?"postRS:?${postRS}"if?[?$??-ne?1?];?thenreturn?0fifireturn?1
}####################################################?設(shè)置用戶參數(shù)
arID="89322"
arToken="3222w2e3213e123421421424234"
#填寫賬戶的API?token#?檢查更新域名
arDdnsCheck?"anrip.com"?"lab"
ps:以上代碼來自http://www.anrip.com/post/872
我們只需要將上面的
# 設(shè)置用戶參數(shù)
arID="user@anrip.com" ? ? //DNSPOD的API ID
arToken="anrip.net" ? ? ? ? ? ? ? ?//DNSPOD的API Token
# 檢查更新域名
arDdnsCheck"anrip.com" ?"lab" ? ? //需要更新的域名為anrip.com,主機(jī)為lab,就是lab.anrip.com
arDdnsCheck"anrip.net" ?"lab" ? ? ?//更新lab.anrip.net
修改成自己的信息即可
3.增加執(zhí)行權(quán)限
chmod?+x?/root/ddns.sh
4.加入任務(wù)計(jì)劃(5分鐘執(zhí)行一次)
echo?"*/5??*?*?*?*?root?/root/ddns.sh"?>>?/etc/crontab
計(jì)劃任務(wù)執(zhí)行情況可以查看/var/log/cron
說明:
如果在執(zhí)行后發(fā)現(xiàn)
[root@localhost?~]#?./ddns.sh
./ddns.sh:?line?24:?nslookup:?command?not?found
hostIP:?114.234.77.222
lastIP:
postRS:?114.234.77.222
如果你使用的是CentOS則執(zhí)行
yum?-y?install?bind-utils
或者是ubuntu的話
sudo?apt-get?install?dnsutils
轉(zhuǎn)載于:https://blog.51cto.com/fengwan/1404534
總結(jié)
以上是生活随笔為你收集整理的CentOS通过DNSpod实现动态域名的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。