生活随笔
收集整理的這篇文章主要介紹了
CentOS通过DNSpod实现动态域名
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
因為家里使用ADSL動態IP上網,有時在外面需要使用家里資源,原本使用的是TP-LINK自帶的花生殼解析,用過之后發現很不穩定。因為自己注冊了域名也已使用了DNSPOD解析。
1.新建腳本文件
vim?ddns.sh
文件內容如下:
#!/bin/sh#?全局變量表
arPass=arMail=""#?獲得外網地址
arIpAdress()?{local?inter="http://members.3322.org/dyndns/getip"wget?--quiet?--no-check-certificate?--output-document=-?$inter
}#?查詢域名地址
#?參數:?待查詢域名
arNslookup()?{local?dnsvr="114.114.114.114"nslookup?${1}?$dnsvr?|?tr?-d?'\n[:blank:]'?|?awk?-F':'?'{print?$6}'
}#?讀取接口數據
#?參數:?接口類型?待提交數據
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
}#?更新記錄信息
#?參數:?主域名?子域名
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=默認")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/'
}
#?動態檢查更新
#?參數:?主域名?子域名
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
}####################################################?設置用戶參數
arID="89322"
arToken="3222w2e3213e123421421424234"
#填寫賬戶的API?token#?檢查更新域名
arDdnsCheck?"anrip.com"?"lab"
ps:以上代碼來自http://www.anrip.com/post/872
我們只需要將上面的
# 設置用戶參數
arID="user@anrip.com" ? ? //DNSPOD的API ID
arToken="anrip.net" ? ? ? ? ? ? ? ?//DNSPOD的API Token
# 檢查更新域名
arDdnsCheck"anrip.com" ?"lab" ? ? //需要更新的域名為anrip.com,主機為lab,就是lab.anrip.com
arDdnsCheck"anrip.net" ?"lab" ? ? ?//更新lab.anrip.net
修改成自己的信息即可
3.增加執行權限
chmod?+x?/root/ddns.sh
4.加入任務計劃(5分鐘執行一次)
echo?"*/5??*?*?*?*?root?/root/ddns.sh"?>>?/etc/crontab
計劃任務執行情況可以查看/var/log/cron
說明:
如果在執行后發現
[root@localhost?~]#?./ddns.sh
./ddns.sh:?line?24:?nslookup:?command?not?found
hostIP:?114.234.77.222
lastIP:
postRS:?114.234.77.222
如果你使用的是CentOS則執行
yum?-y?install?bind-utils
或者是ubuntu的話
sudo?apt-get?install?dnsutils
轉載于:https://blog.51cto.com/fengwan/1404534
總結
以上是生活随笔為你收集整理的CentOS通过DNSpod实现动态域名的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。