ROS中使用CloudXNS的DDNS功能

說明
CloudXNS API的DDNS 僅支持HTTP PUT/POST方式,在ROS系統中沒法使用HTTP POST,因而在VPS中部署了一份HTTP GET(將GET請求轉換成POST請求,轉發給CloudXNS 服務器)方式的CloudXNS DDNS的功能。若是你介意你的域名解析安全問題,請忽略本文。php

前置要求
在CloudXNS管理控制檯中開啓API,請注意API KEY和SECRET KEY,下方須要用到。安全

57b2aa630dfdb.png

使用方式
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


57b2aac467a43.png

57b2aac49376f.png

57b2aac475a99.png

從上圖可見,湖北電信線路編號爲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社區

相關文章
相關標籤/搜索