本文转载地址:https://www.77bx.com/132.html
版权所有,本文由 奇奇博讯 创作发布,转载或复制请以超链接形式并注明出处。
版本说明
1、最低版本支持RouterOS v6.43,低于这个版本的要么升级,要么还是使用第三方服务器来动态解析。
2、不存在的记录,不会自动添加,需要手动在DNSPOD添加记录,线路为默认,不支持单记录多线路解析。为什么不加自动了添加域名之类的,因为一次添加永久有效,所以脚本中不添加自动了。节省ROS性能(我懒)
3、只支持IPv4,不支持IPv6
4、脚本中需要自己修改的信息
pppoe,拨号连接的名称,如pppoe-out1
token,dnspod的token。id和token之间用半角逗号连接(英文状态下的逗号)
domain,域名
subdomain,主机记录
脚本代码
#PPPoE :local pppoe "ADSL-PPPoE" #DNSPOD token :local token "xxxxx,xxxxxxxxxxxxxxxxxxx" #域名 :local domain "77bx.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") }