盘卓云-全球云技术交流

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
开启左侧

RouterOS原生脚本实现DNSPOD的DDNS动态解析

[复制链接]
猪头 发表于 2020-2-26 21:12:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
脚本说明:
1. 不存在的记录,不会自动添加,需要手动在DNSPOD添加记录,线路为默认,不支持单记录多线路解析。
2. 只支持IPv4,不支持IPv6
3. 脚本中需要自己修改的信息
pppoe,拨号连接的名称,如pppoe-out1
token,dnspod的token。id和token之间用半角逗号连接(英文状态下的逗号)
domain,域名
subdomain,主机记录

版本更新:
1.0 beta  by 2019/11/13
1. 测试版本,有任何问题请留言。
2. 为什么不加自动了添加域名之类的,因为一次添加永久有效,所以脚本中不添加自动了。节省ROS性能(我懒)

脚本代码:
  1. #PPPoE
  2. :local pppoe "ADSL-PPPoE"

  3. #DNSPOD token
  4. :local token "xxxxx,xxxxxxxxxxxxxxxxxxx"

  5. #域名
  6. :local domain "myxzy.com"

  7. #域名主机名
  8. :local subdomain "www"

  9. #以下不是专业人士请不要修改
  10. #domain
  11. :local dname ($subdomain.".".$domain)

  12. #获取pppoe拨号ip
  13. :local ipaddr [/ip address get [/ip address find interface=$pppoe] address]
  14. :set ipaddr [:pick $ipaddr 0 ([len $ipaddr] -3)]

  15. #获取域名列表
  16. :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]

  17. #获取id和ip
  18. :set record ($record->"data")
  19. :set record [:pick $record [:find $record ""records":"] [:len $record]]
  20. :local recordid [:pick $record ([:find $record ""id":""]+6) [:find $record "","ttl"]]
  21. :local recordip [:pick $record ([:find $record ""value":""]+9) [:find $record "","en"]]

  22. #更新ip地址
  23. :if ($recordip!=$ipaddr) do={
  24. /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"
  25. :log info ("[".$dname."] ip update")
  26. } else={
  27. :log info ("[".$dname."] ip not update")
  28. }
复制代码
版权所有,转载请注明出处:https://www.myxzy.com/ros-dnspod.html
盘卓网-科技新媒体,新奇GEEK酷品
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表