RouterOS利用DNSPOD的API接口实现DDNS动态解析

首先域名要在DNSPOD解析,然后在DNSPOD后台开启的API Token。

详细开通API Token教程:https://support.dnspod.cn/Kb/showarticle/tsid/227/

以下是我通过DNSPOD官方API开发的更新域名请求地址:http://www.myxzy.com/dnspod.php?id=(API ID)&token=(API Token)&ip=(域名解析IP地址)&domain=(域名)&sub_domain=(域名解析名)&line=cmcc&chk=1&type=AAAA

参数说明(以下参数为必填参数):

1、(API ID):API Token ID,一般都是5位数字。

2、(API Token):API Token,一大串字符串,只有申请的第一次才会显示。

3、(域名解析IP地址):IP地址,ROS中由PPPoE获取到的地址

4、(域名):域名地址,如myxzy.com

5、(域名解析名):解析名,如www

以下是选用参数,不带这些参数为默认设置:

6、line默认设置为默认,如&line=cmcc,那么线路就是移动线路,请按照下面的对照表来。

default  =>  默认
ctc  =>  电信
cucc  =>  联通
cernet  =>  教育网
cmcc  =>  移动
ctt  =>  铁通
home  =>  国内
abord  =>  国外
search  =>  搜索引擎
baidu  =>  百度
google  =>  谷歌
youdao  =>  有道
bing  =>  必应
soso  =>  搜搜
sogou  =>  搜狗
qihu  =>  奇虎
7、&chk=1 该参数是防止服务器从DNS获取域名的解析IP地址来判断是否IP相同,默认是开启的

8、&type=AAAA 该参数为IPv6参数,默认是A记录

注:本接口未记录所有解析的token和解析记录,所以所有由本接口更改的DNS记录是不可查询的,请一段时间更换次API token,以及需要动态解析的域名为不重要域名,DNSPOD账号如果可以分开,请单独使用账号,因为token带入链接中去了,获取还是很简单的。有了token可以管理账号下的所有域名。本接口的源代码暂时不发布,如果需要请单独联系我(源代码不提供之后的任何技术支持)。

更新说明:


by 2018-10-18

1.1版本

1、增加ipv6支持,在连接后面加上&type=AAAA为IPv6(不加默认是A解析)

2、把更新DNS记录接口修改为修改DNS接口(更新DNS接口不支持IPv6)

3、IPv6不增加从服务器获取IPv6进行判断


1.0版本

1、增加按照线路更新ip地址

2、对服务器获取域名IP判断DNS记录添加开关 &chk=1

3、优化本接口报错信息提示


0.1beta版本

1、基本实现DNS域名动态解析

2、可以判断IP是否相同,防止DNSPOD相同修改记录超过5次被锁域名1小时


DNSPOD后台:

添加一条A记录,不然API接口会报错的


以下是ROS的脚本:

:global ipnew [/ip address get [/ip address find interface=ADSL-PPPoE] address]
:set ipnew [:pick $ipnew 0 ([len $ipnew] -3)]
:global ipold
:if (($ipnew != "") && ($ipnew != $ipold)) do={
/tool fetch url=("http://www.myxzy.com/dnspod.php\?id=token id&token=api token&ip=$ipnew&domain=myxzy.com&sub_domain=ros") mode=http keep-result=no
:set ipold $ipnew
log info "DDNS: Sending UPDATE!"
}

以上脚本需要修改ADSL-PPPoE(宽带拨号的名称),token id,API token,域名和域名解析名

注:ROS可以设置定时1分钟执行一次脚本,脚本中带有ip是否相同判断,相同就不执行;然后是我做的API接口后台中也有ip是否相同的判断,所以不会引起DNSPOD锁域名的情况。

目前有 0 条评论

昵称
邮箱
主页
提交
订阅