說明
CloudXNS API的DDNS 僅支持HTTP PUT/POST方式,在ROS系統中沒法使用HTTP POST,因而在VPS中部署了一份HTTP GET(將GET請求轉換成POST請求,轉發給CloudXNS 服務器)方式的CloudXNS DDNS的功能。若是你介意你的域名解析安全問題,請忽略本文。php
前置要求
在CloudXNS管理控制檯中開啓API,請注意API KEY和SECRET KEY,下方須要用到。安全
使用方式
HTTP GET方式請求URL地址 http://www.naslot.com/ddns/dd...**&secret=&way=服務器
參數解釋:dom
host:帶主機名的域名。注意:該HOST必須先添加到域名解析記錄中。fetch
ip : 須要解析的IP,多個IP用|分隔url
key : API Keyspa
secret : Secret Key.net
way : 線路編號。可不傳遞,默認爲1.code
附錄:線路編號的獲取server
從上圖可見,湖北電信線路編號爲50,則way的參數可設爲50.
ROS中DDNS的腳本。
Scheduler設爲1~5min。由於在腳本中有判斷IP是否變更,因此通常狀況下,不會形成濫用。
if ([len [/interface pppoe-client find running=yes]] > 0) do={
local ipaddr local domain "*****" local key "*****" local secret "*****" local way "1" local server "http://www.naslot.com" global lastip :local pname [/interface pppoe-client get [:pick [/interface pppoe-client find running=yes] 0] name ] :set ipaddr [/ip address get [/ip address find interface=$pname] address] :set ipaddr [:pick $ipaddr 0 ([len $ipaddr] -3)] :if ($ipaddr != $lastip) do={ :set lastip $ipaddr local $par $"/ddns/ddns.php?host=$domain&ip=$ipaddr&key=$key&secret=$secret&way=$way" :log info $par /tool fetch url=($server.$par) mode=http keep-result=yes } else={ #:log info "DDNS: No changes necessary." }
}
再次強調
解析的域名必須在CloudXNS的域名解析列表中存在,本例僅更新解析的IP而非新增解析。
本文來源於CloudXNS X社區