最新消息:只专注于网维技术

ROS路由对接dnspod实现域名自动解析

技术交流 addmin 67浏览

通过winbox连接到ros,依次点击System→Scripts,点击➕号添加一个ddns脚本,填写一个名字,脚本填写在最下方空白格里,其他选项不用调整

具体脚本如下

#PPPoE
:local pppoe "pppoe-out1"
#DNSPOD token
:local token "62333,f6b4dd1e9d0844dd399d68dd4abbcb7"
#域名
:local domain "zxdwl.com"
#子域名
:local subdomain "admin"
#dname不要动
:local dname ($subdomain.".".$domain)
#获取pppoe拨号ip
:local ipaddr [/ip address get [/ip address find interface=$pppoe] address]
:set ipaddr [:pick $ipaddr 0 ([len $ipaddr] -3)]
#获取域名列表
:local record [/tool fetch url="https://dnsapi.cn/Record.List" http-data="login_token=$token&format=json&domain=$domain&sub_domain=$subdomain&record_type=A" as-value output=user]
#获取id和ip
:set record ($record->"data")
:set record [:pick $record [:find $record "\"records\":"] [:len $record]]
:local recordid [:pick $record ([:find $record "\"id\":\""]+6) [:find $record "\",\"ttl"]]
:local recordip [:pick $record ([:find $record "\"value\":\""]+9) [:find $record "\",\"en"]]
#更新ip地址
:if ($recordip!=$ipaddr) do={
/tool fetch url="https://dnsapi.cn/Record.Ddns" http-data="login_token=$token&format=json&domain=$domain&sub_domain=$subdomain&record_id=$recordid&record_line_id=0&value=$ipaddr"
:log info ("[".$dname."] 最新IP提交成功")
} else={
:log info ("[".$dname."] IP较上次无变化")
}

修改脚本里以下四个参数成你自己的

1、pppoe参数填写ros里拨号上网的那个interface的name

2、token参数里的id,token两个值从DNSPOD平台获取,创建token参考密钥管理 – DNSPod 服务与支持

3、域名domain参数填写你的域名地址

4、子域名subdomain参数填写你要更新的域名前缀,如www,@等

写完成后保存,脚本就建好了,下面还需要创建一个定时调度任务,定时的去执行我们的ddns脚本,保证ip能及时更新 。点击System→Scheduler→➕加号,创建定时任务

Name随便起一个,interval参数是定时任务执行间隔,建议填写【00:01:00】,为一分钟执行一次,最下方空白处填写上我们刚才创建的脚本的名称,点击确定,这样定时任务就创建好了。

转载请注明:河南网管联盟 » ROS路由对接dnspod实现域名自动解析