手机游戏
经典单机
角色扮演
休闲益智
动作冒险
射击枪战
赛车竞速
模拟经营
解密闯关
策略战争
手机软件
时尚购物
体育运动
资讯阅读
教育学习
摄影摄像
生活服务
效率办公
聊天社交
视频盒子
其它软件
新闻资讯
游戏攻略
软件教程
游戏问答
软件资讯
软件技术
叨叨念念
网站技术
技术问答
软件教程
资源资料
原创作品
代码学习
网页设计
网络技术
合集
合集
游戏合集
软件合集
资讯合集
视频合集
首页 > 网络技术 > 网络技术

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

作者:星知苑 时间:2018-02-25 12:04:46

本文主要讲解如何借助DNSPOD的API接口来实现RouterOS的DDNS动态解析。

 

一、创建Token添加域名

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

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

 

二、PHP制作DNSPOD API动态解析接口

以下是我制作好的php解析接口[break]

接口地址:

 

查询接口

 

链接自动生成接口

 

HTTP请求方式:

  • POST/GET

 

请求参数:

  • token    (必选)  DNSPod Token,格式 "ID,Token",如“12345,3a13a4331549*******127c185368303”
  • domain (必选)  域名(如:myxzy.com)
  • record  (必选)  记录名(如:www)
  • record_id  (必选)  记录名id, 和record二选一
  • ip         (可选,默认值为请求来源IPv4)  DDNS的IP地址(或者CNAME、MX记录值)
  • line      (可选,默认值为默认)  线路设置,详细参数请看注1
  • type     (可选,默认值为A记录  支持AAAA、CNAME、MX记录
  • format    (可选,默认值为xml  xml和json,返回的数据格式

 

注意:

2019-9-16

已更换服务器,没有解析次数限制,希望这次不会经常把服务器玩挂。

2019-8-5

现在一天的解析量很大,一天解析次数已经超过100万了,1次解析2~3次curl,而curl又很占资源,为了其他资源正常,我设置了监控脚本,所以会导致该解析动不动就关站。为了保证大家的正常使用,所以我这边对解析接口1加了限制,限制为1分钟内最多5次,超过了就禁用60分钟,第6次解析不生效。如果需要高解析量的,那么请使用解析接口2,其实本人还是希望有这种高解析量的自建php服务器。

 

注1:

line参数说明:如&line=cmcc,那么线路就是移动线路,请按照下面的对照表来。

default  =>  默认
ctc  =>  电信
cucc  =>  联通
cernet  =>  教育网
cmcc  =>  移动
ctt  =>  铁通
home  =>  国内
abord  =>  国外
search  =>  搜索引擎
baidu  =>  百度
google  =>  谷歌
youdao  =>  有道
bing  =>  必应
soso  =>  搜搜
sogou  =>  搜狗
qihu  =>  奇虎

 

示例:

curl -X POST http://u.myxzy.com/dnspod -d 'token=id,token&domain=myxzy.com&record=www&ip=1.1.1.1&line=ctc&record_type=A&format=json'
返回参考:
{
    "code": "1",
    "message": "Record created success, ip updated",
    "time": "2019-03-08 09:28:34",
    "info": "dnspod-api-php V1.4 By Star.Yu"
}
字段说明:

code:状态id编号,1是成功,0是失败,其他的数字请参考DNSPOD的API ID对应的报错

message:本php接口输出的信息

time:访问时间

info:本php接口的版本信息等

 

安全说明:

1、本接口未记录所有的解析token和解析记录,但是服务器的访问日志会有链接记录(按照政策要求需保存6个月的日志虽然有日志但是本接口不提供任何查询。

2、建议使用独立的DNSPOD账号来使用本接口,重要的域名请自建PHP服务器用来解析。由于使用本接口出现的任何安全问题,本人概不负责。这边只能保证本人不会去做任何后门行为。这边建议如果使用了本接口请勤换token

PS:因为有了token可以管理账号下的所有域名。

 

dnspod-api-php Github地址:https://github.com/myxzy/dnspod-api-php/

 

ROS脚本:

 

#PPPoE
:local pppoe "pppoe-out1"

#DDNS Token
:local token "id,token"

#DDNS域名
:local record "www"
:local domain "myxzy.com"

#以下不需要修改
:global ipold
:local ipnew [/ip address get [/ip address find interface=$pppoe] address]
:set ipnew [:pick $ipnew 0 ([len $ipnew] -3)]
:if ($ipnew != $ipold) do={
:local url "http://u.myxzy.com/dnspod/?token=$token&ip=$ipnew&domain=$domain&record=$record"
/tool fetch url=$url mode=http keep-result=no
:set ipold $ipnew
log info "DDNS: Sending UPDATE!"
}

以上脚本需要修改pppoe(宽带拨号的名称),token,record和domain

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

 

更新说明:

by 2019-9-25

1.8服务器版本

1、为了降低负载使用memcached进行缓存降低压力而开发的(不适合个人使用,所以不更新到github)

2、增加list.php页面用于token查询A和AAAA记录

3、测试功能加入record_id支持,使用list.php查询。

 

by 2019-6-16

bug修复:

1、修复脚本不更新ip的问题

 

by 2019-4-7

1.7版本

1、支持cname和mx记录添加和修改

2、A和AAAA记录会判断IP值是否正确

 

 

 

by 2019-4-3

1.6版本

1、优化部分Bug

2、不添加参数自动跳转到demo页面

 

by 2019-3-18

1.5版本

1、支持POST和GET提交

 

 

by 2019-3-8

1.4版本

1、重写返回数据格式,因为我要对接项目,所以返回格式可以是xml或json

2、重写更新ipv4和修改ipv6

3、ip地址可以根据来源自动更新。

4、自动添加解析记录,不存在就自动添加解析记录

 

by 2018-12-19

1.3版本

1、去除服务器获取域名DNS解析地址去判断是否相同(不影响和DNSPOD后台记录是否相同的判断)

2、因为突然发现可以通过访问日志查看解析的API ID和Token,有不安全的可能的,所以提供代码,建议自建PHP服务器保证域名解析安全

3、如果不怕安全问题,这边还会继续提供解析服务,不过会修改本API的服务器地址,老版本接口保证持续1个月

 

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小时

良心推荐

爆率高的传奇变态游戏有哪些
  • 传奇合成版2合1雷霆版
  • 无任务超变传奇手游
  • 满屏光柱的传奇手游
  • 高爆率传奇刀刀光柱
  • 满屏光柱刀刀爆真传奇
  • 1000倍爆率传奇无任务
经典的游戏必定是很多的玩家的最爱,特别是尤其记得当年那些疯狂的各种一路狂砍,还有半夜起来刷各种功能的戒指,打造卓越神器等那些都是满满的回忆,现在手机上也有很多的版本的传奇,这里小编就自己亲身的玩了体验的那种纯粹的非常高的爆率,不用氪金的传奇游戏版本直接的推荐给各位玩家免费的下载。

相关资讯