内容整合:
https://www.myxzy.com/ros-dnspod.html
https://www.myxzy.com/dnspod-api-php.html
https://post.smzdm.com/p/ax0202l9/
因部分源网站安全性问题,在此整理备份。
一、创建Token添加域名
首先域名要在DNSPOD解析,然后在DNSPOD后台开启的API Token。
详细开通API Token教程:https://support.dnspod.cn/Kb/showarticle/tsid/227/
二、ROS脚本设置
脚本说明:
- 不存在的记录,不会自动添加,需要手动在DNSPOD添加记录,线路为默认,不支持单记录多线路解析。
- 只支持IPv4,不支持IPv6
- 脚本中需要自己修改的信息: pppoe,拨号连接的名称,如pppoe-out1; token,dnspod的token。id和token之间用半角逗号连接(英文状态下的逗号); domain,域名; subdomain,主机记录;
版本更新: 1.0 beta by 2019/11/13
- 测试版本,有任何问题请留言。
- 为什么不加自动了添加域名之类的,因为一次添加永久有效,所以脚本中不添加自动了。节省ROS性能(我懒)
脚本代码:
#PPPoE
:local pppoe "ADSL-PPPoE"
#DNSPOD token
:local token "xxxxx,xxxxxxxxxxxxxxxxxxx"
#域名
:local domain "myxzy.com"
#域名主机名
:local subdomain "www"
#以下不是专业人士请不要修改
#domain
: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 update")
} else={
:log info ("[".$dname."] ip not update")
}
三、ROS脚本添加
System-Scripts,依次补充脚本名、脚本内容。
脚本文件设置好后,创建一个定时任务,让它定时执行。
System-Ccheduler,如下设置。
收工。