说明
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社区