说明
CloudXNS API的DDNS 仅支持HTTP PUT/POST方式,在ROS系统中无法使用HTTP POST,于是在VPS中部署了一份HTTP GET(将GET请求转换成POST请求,转发给CloudXNS 服务器)方式的CloudXNS DDNS的功能。如果你介意你的域名解析安全问题,请忽略本文。
前置要求
在CloudXNS管理控制台中开启API,请注意API KEY和SECRET KEY,下方需要用到。
使用方式
HTTP GET方式请求URL地址 http://www.naslot.com/ddns/dd...**&secret=&way=
参数解释:
host:带主机名的域名。注意:该HOST必须先添加到域名解析记录中。
ip : 需要解析的IP,多个IP用|分隔
key : API Key
secret : Secret Key
way : 线路编号。可不传递,默认为1.
附录:线路编号的获取
从上图可见,湖北电信线路编号为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社区