找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888广告投放联系QQ68610888
广告投放联系QQ68610888广告投放联系QQ68610888
查看: 3184|回复: 5

[Router OS] 发一个RouterOS的DDNS脚本,支持dynv6和dynu

[复制链接]
发表于 2025-4-8 20:31 | 显示全部楼层 |阅读模式
简单的dynv6和dynu双域名更新,有哪位大神能加上接口状态检测,接口未就绪循环重试,同一时间值允许一个脚本运行

  1. # ========================
  2. # 基础参数配置区
  3. # ========================

  4. # ------------------------
  5. # Dynv6 专用配置
  6. # ------------------------
  7. :local dynv6Hostname "你的dynv6域名"
  8. :local dynv6Token "你的dynv6令牌"
  9. :local dynv6ApiUrl "https://dynv6.com/api/update"

  10. # ------------------------
  11. # Dynu 专用配置
  12. # ------------------------
  13. :local dynuHostname "你的dynu域名"
  14. :local dynuPassword "你的dynu密钥"
  15. :local dynuApiUrl "https://api.dynu.com/nic/update"

  16. # ========================
  17. # 公共变量区(IP获取)
  18. # ========================
  19. :local ifaceName "你的pppoe接口"
  20. :local currentIP [/ip address get [/ip address find dynamic=yes interface=$ifaceName] address]
  21. :set currentIP [:pick $currentIP 0 [:find $currentIP "/"]]

  22. # ========================
  23. # DDNS更新执行区
  24. # ========================

  25. # ------------------------
  26. # Dynv6 更新流程
  27. # ------------------------
  28. #:log info "开始Dynv6更新流程..."
  29. :local dynv6RequestUrl ($dynv6ApiUrl . "?hostname=" . $dynv6Hostname . "&token=" . $dynv6Token . "&ipv4=" . $currentIP)
  30. :local dynv6Response [/tool/fetch url=$dynv6RequestUrl mode=https as-value output=user]

  31. :if ([:len $dynv6Response] > 0) do={
  32.     :if ($dynv6Response->"status" = "finished") do={
  33.         :local dynv6StatusCode ($dynv6Response->"data")

  34.         :if ($dynv6StatusCode = "addresses updated") do={
  35.             :log info "Dynv6域名:$dynv6Hostname 更新成功 IP: $currentIP"
  36.         } else={
  37.             :if ($dynv6StatusCode = "addresses unchanged") do={
  38.                 :log info "Dynv6地址未变更:$currentIP  域名:$dynv6Hostname IP"
  39.             } else={
  40.                 :log warning "Dynv6异常响应:$dynv6StatusCode"
  41.             }
  42.         }
  43.     } else={
  44.         :log error "Dynv6请求失败:$($dynv6Response->"error")"
  45.     }
  46. } else={
  47.     :log error "Dynv6服务无响应"
  48. }

  49. # ------------------------
  50. # Dynu 更新流程
  51. # ------------------------
  52. #:log info "开始Dynu更新流程..."
  53. :local dynuRequestUrl ($dynuApiUrl . "?hostname=" . $dynuHostname . "&myip=" . $currentIP . "&password=" . $dynuPassword)
  54. :local dynuResponse [/tool/fetch url=$dynuRequestUrl mode=https as-value output=user]


  55. :if ([:len $dynuResponse] > 0) do={
  56.     :if ($dynuResponse->"status" = "finished") do={
  57.         :local dynuStatusCode ($dynuResponse->"data")

  58.         :if ($dynuStatusCode = "good $currentIP") do={
  59.             :log info "Dynu域名:“$dynuHostname 更新成功 IP: $currentIP"
  60.         } else={
  61.             :if ($dynuStatusCode = "nochg") do={
  62.                 :log info "Dynu地址未变更:$currentIP 域名:$dynuHostname IP"
  63.             } else={
  64.                 :log warning "Dynu异常响应:$dynuStatusCode"
  65.             }
  66.         }
  67.     } else={
  68.         :log error "Dynu请求失败:$($dynuResponse->"error")"
  69.     }
  70. } else={
  71.     :log error "Dynu服务无响应"
  72. }

  73. # ========================
  74. # 执行结束
  75. # ========================
复制代码


只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
发表于 2025-4-8 20:46 | 显示全部楼层
本帖最后由 tty228 于 2025-4-11 13:18 编辑

刚好写了个 ROS cloudflare ddns 脚本,借楼顺便发一个

https://github.com/tty228/mikrotik-cloudflare-dns

代码不贴了,每次编辑还要审核
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复

使用道具 举报

发表于 2025-4-13 23:11 | 显示全部楼层
支持IPV6吗
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复

使用道具 举报

发表于 2025-5-11 20:11 | 显示全部楼层
试了一下,出错了

点评

是dynu报错吗?dns静态记录加上,api.dynu.com,162.216.242.58  详情 回复 发表于 2025-6-28 15:28
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复

使用道具 举报

 楼主| 发表于 2025-6-28 15:28 来自手机 | 显示全部楼层
merit 发表于 2025-5-11 20:11
试了一下,出错了

是dynu报错吗?dns静态记录加上,api.dynu.com,162.216.242.58
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复

使用道具 举报

发表于 2025-7-15 21:07 | 显示全部楼层
7.4版本以后支持docker  直接上ddns-go
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /2 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2026-8-23 16:00

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 电话:13506125623

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