ROS中使用CloudXNS的DDNS功能

说明
CloudXNS API的DDNS 仅支持HTTP PUT/POST方式,在ROS系统中无法使用HTTP POST,于是在VPS中部署了一份HTTP GET(将GET请求转换成POST请求,转发给CloudXNS 服务器)方式的CloudXNS DDNS的功能。如果你介意你的域名解析安全问题,请忽略本文。

前置要求
在CloudXNS管理控制台中开启API,请注意API KEY和SECRET KEY,下方需要用到。

ROS中使用CloudXNS的DDNS功能_第1张图片

使用方式
HTTP GET方式请求URL地址 http://www.naslot.com/ddns/dd...**&secret=&way=

参数解释:

host:带主机名的域名。注意:该HOST必须先添加到域名解析记录中。

ip : 需要解析的IP,多个IP用|分隔

key : API Key

secret : Secret Key

way : 线路编号。可不传递,默认为1.

附录:线路编号的获取


ROS中使用CloudXNS的DDNS功能_第2张图片

ROS中使用CloudXNS的DDNS功能_第3张图片

ROS中使用CloudXNS的DDNS功能_第4张图片

从上图可见,湖北电信线路编号为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社区

你可能感兴趣的:(dns,域名解析)