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

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

作者:星知苑 时间:2019-06-08 11:05:59

本文主要讲解如何借助阿里云aliyun的云解析API接口来实现RouterOS(以下简称ROS)的DDNS动态解析。

 

一、创建访问控制RAM的AccessKey

我这边简单的讲讲如何申请开通:

1、阿里云网站 --> 产品 --> 安全 --> 应用身份服务,这个就是控制API ,用户管理,新建用户,填写用户名和勾上“为该用户自动生成AccessKey”,保存好这个accesskey。


2、策略管理 --> 自定义授权策略,新建授权策略,选择空白模版,授权策略名称随便填(如alidns),策略内容为下面的内容(修改下面内容中的域名为你自己要做DDNS的域名)[break]

action是api的接口,只接受AddDomainRecord(增加域名解析),DescribeDomainRecords(输出域名解析列表)和UpdateDomainRecord(修改域名解析记录)

Resource是指被授权的具体对象,这边domain/myxzy.com需要修改成你自己的域名domain/xxx.com。这样就是授权对象是该域名

 

{
  "Version": "1",
  "Statement": [
    {
      "Action": [
        "alidns:AddDomainRecord",
        "alidns:DescribeDomainRecords",
        "alidns:UpdateDomainRecord"
      ],
      "Resource": "acs:alidns:*:*:domain/myxzy.com",
      "Effect": "Allow"
    }
  ]
}

 

3、用户管理,对上面创建的用户,点击授权,选择刚才自定义创建的策略,确定。

 

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

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

接口地址:

 

HTTP请求方式:

  • POST/GET

 

请求参数:

  • id    (必选)  AccessKeyId
  • secret (必选)  AccessKeySecret
  • record  (必选)  记录名(如:www)
  • domain (必选)  域名(如:myxzy.com)
  • ip         (可选,默认值为请求来源IPv4)  DDNS的IP地址
  • type     (可选,默认值为A,可选值为AAAA) IPv6支持

 

示例:
curl -X POST http://u.myxzy.com/alidns -d 'id=id&secret=secret&domain=myxzy.com&record=www&ip=1.1.1.1'

返回

“0”代表解析修改成功或者是当前解析记录ip相同

“1”代表AccessKey报错(这个阿里云我这边经常出现,刷新就可以正常)

“2”代表没有设置参数

 

安全说明:

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

2、强烈建议按照步骤一设置授权权限。

3、由于使用本接口出现的任何安全问题,本人概不负责。这边只能保证本人不会去做任何后门行为。这边建议勤换AccessKey

 

 

2020-2-14 v1.1

1、修复records记录太多,导致重复添加域名记录

2、修复签名有概率失败的情况

3、支持IPv6解析,加上参数&type=AAAA,IP参数为IPv6地址

 

 

2019-6-8 v1.0

1、只支持A记录,TTL为600(10分钟),线路是默认线路

2、ip填入不带,默认是来源的IPv4地址

3、不支持IPv6

4、解析记录不存在会自动新建解析记录,存在则修改解析

5、多线路相同主机名记录只能识别列表第一条主机名解析记录

6、供源码

 

三、ROS脚本

id、secret、domain、record、pppoe修改成自己的。定时1分钟运行就好。

 

#aliyun Access Key
:local id "AccessKeyId"
:local secret "AccessKeySecret"

#domain
:local domain "myxzy.com"
:local record "www"

#PPPoE-out
:local pppoe "pppoe-out1"

:local ipaddr [/ip address get [/ip address find interface=$pppoe] address]
:set ipaddr [:pick $ipaddr 0 ([len $ipaddr] -3)]
:global aliip
:if ($ipaddr != $aliip) do={
:local result [/tool fetch url="http://u.myxzy.com/alidns/?id=$id&secret=$secret&domain=$domain&record=$record&ip=$ipaddr" as-value output=user];
:if ($result->"status" = "finished") do={
:if ($result->"data" = "0") do={
:set aliip $ipaddr
:log info "alidns update ok";
} else={
:log info "alidns update error";
}
}
}

脚本说明:获取pppoe拨号ip,然后判断和记录解析ip是否相同,不同开始访问我的php解析脚本,解析脚本就判断参数执行,返回0或1或2,如果是0更新记录的alidns解析ip,其他的不记录。

 

四、alidns-api-php脚本源码

Github:https://github.com/myxzy/alidns-api-php

良心推荐

真正免费手机定位软件
  • 定位找人大师免费版
  • 定位app下载
  • 蜗牛定位app下载
  • 手机定位防盗找帮下载
  • 他迹定位软件下载
  • 定位宝破解版下载
为了家人还有孩子的安全在很多时候都是会在手机上面或者是身上装定位的软件,现在的市场上面有着太多的这类的工具,不过有的都是需要钱要么就是坑黑软件,一定要想要用这类的软件的还是要找正规的网站去下载,本站就是专门的收集了一些经过了验证绝对是可靠免费非常好用的定位的手机软件提供免费的下载。

相关资讯