本文主要讲解如何借助DNSPOD的新版API接口来实现RouterOS的DDNS动态解析。
	看到DNSPOD官网有即将下架老版本API的提示,所以使用新版本的API来写了一个更新接口。
	
	一、创建Token添加域名 
	首先域名要在DNSPOD解析,然后在腾讯云后台开启的API Token。
	详细开通API Token教程:https://console.cloud.tencent.com/cam/capi 
	
	二、PHP制作DNSPOD API动态解析接口
	以下是我制作好的php解析接口,支持SSL
	解析接口 
	
		http://api.77bx.com/dnspod/dnspod.php
	
	
		https://api.77bx.com/dnspod/dnspod.php
	
	
	HTTP请求方式 
	
		POST/GET
	
	
	请求参数 
	
		
			
				
					参数名称
				
				
					必选
				
				
					类型
				
				
					描述
				
			
		
		
			
				
					id
				
				
					是
				
				
					String
				
				
					腾讯云API密钥SecretId
				
			
			
				
					key
				
				
					是
				
				
					String
				
				
					腾讯云API密钥SecretKey
				
			
			
				
					domain
				
				
					是
				
				
					String
				
				
					域名。如77bx.com
				
			
			
				
					record
				
				
					否
				
				
					String
				
				
					主机记录。如不传默认为@
				
			
			
				
					type
				
				
					否
				
				
					String
				
				
					记录类型。如不传默认为A记录
				
			
			
				
					ip
				
				
					否
				
				
					String
				
				
					IP地址。如不传默认为来源IPv4地址
				
			
		
	
	
	请求事例
curl -X POST http://api.77bx.com/dnspod/dnspod.php -d "id=SecretId&key=SecretKey&domain=77bx.com&record=op&ip=1.1.1.1&type=A"
	
	请求输出
	
		
			
				
					返回提示
				
				
					描述
				
			
		
		
			
				
					0
				
				
					表示更新成功(当前IP地址和域名IP地址相同也返回0)
				
			
			
				
					1
				
				
					参数错误
				
			
			
				
					2
				
				
					域名或API密钥错误
				
			
			
				
					3
				
				
					更新或API密钥错误
				
			
		
	
	
	安全说明
	1、本接口未记录所有的解析token和解析记录,但是服务器的访问日志会有链接记录(按照政策要求需保存6个月的日志)。虽然有日志但是本接口不提供任何查询。
	2、建议使用独立的DNSPOD账号来使用本接口,重要的域名请自建PHP服务器用来解析。由于使用本接口出现的任何安全问题,本人概不负责。这边只能保证本人不会去做任何后门行为。这边建议如果使用了本接口请勤换token(token可以管理账号下的所有域名)。
	
	源代码
	暂时不提供
	
	RouterOS脚本
#PPPoE
:local pppoe "pppoe-out1"
#DNSPOD Token
:local secretid "secretid"
:local secretkey "secretkey"
#DNSPOD域名
:local record "op1"
:local domain "77bx.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 postdata "id=$secretid&key=$secretkey&domain=$domain&record=$record&ip=$ipnew"
  :local response [/tool fetch http-method="post" url=http://api.77bx.com/dnspod/dnspod.php http-data=$postdata as-value output=user]
  :if ($response->"data" = "0") do={
    :log info "DDNS: changed $ipold to $ipnew"
    :set ipold $ipnew
  }
}
	以上脚本需要修改pppoe(宽带拨号的名称),secretid,secretkey,record和domain
	注意:ROS可以设置定时1分钟执行一次脚本,脚本中带有ip是否相同判断,相同就不执行;然后是我做的API接口后台中也有ip是否相同的判断,一般不会引起DNSPOD锁域名的情况。