找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888广告投放联系QQ68610888
广告投放联系QQ68610888广告投放联系QQ68610888
查看: 10414|回复: 134

[Router OS] RouterOS NameSilo DDNS 更新脚本分享

 火.. [复制链接]
发表于 2024-12-12 23:03 | 显示全部楼层 |阅读模式
本帖最后由 Shinglee 于 2025-12-19 16:53 编辑

RouterOS 7.13以后的版本原生支持 json,不需要依赖第三方脚本,闲的无聊自己写了一份脚本分享出来,供大家食用

需要大家注意的是此脚本只能更新DNS记录,不能新增DNS记录。所以用之前,自己先在NameSilo官网手动增加一条你的记录,再用此脚本做DNS更新。


# WAN IPv4 interface
:local wanif "pppoe-out1"

# NameSilo section
:local key "12345"
:local domain "namesilo.com"
:local rrhost "test"


需要修改的地方只有这4个参数,自己按需修改。
上面参数完整域名示例:test.namesilo.com,需要自己将域名拆分成对应的两个参数。


key的申请地址我也贴出来,方便兄弟们自行申请:
https://www.namesilo.com/account/api-manager

  1. # Update NameSilo DNS IPv4 address script
  2. # RouterOS version >= 7.13 is required

  3. # ** CONFIGURE SECTION **

  4. # WAN IPv4 interface
  5. :local wanif "pppoe-out1"

  6. # NameSilo section
  7. :local key "12345"
  8. :local domain "namesilo.com"
  9. :local rrhost "test"

  10. :local version "1"
  11. :local type "json"
  12. :local rrttl "3603"
  13. :local rrid
  14. :local rrvalue

  15. #:local dnsListRecords "https://www.namesilo.com/api/dnsListRecords?version=1&type=xml&key=12345&domain=namesilo.com"
  16. #:local dnsUpdateRecord "https://www.namesilo.com/api/dnsUpdateRecord?version=1&type=xml&key=12345&domain=namesilo.com&rrid=1a2b3&rrhost=test&rrvalue=55.55.55.55&rrttl=7207"

  17. # ** END OF CONFIGURE SECTION **

  18. :delay 15

  19. # Get WAN interface IPv4 address
  20. :local ip4wan
  21. :set ip4wan [/ip address get [/ip address find interface=$wanif] address]
  22. :set rrvalue [:pick [:tostr $ip4wan] 0 [:find [:tostr $ip4wan] "/"]]
  23. :if ([:len $rrvalue] = 0) do={
  24. :log error "[NameSilo DDNS] Could not get IPv4 for interface $wanif"
  25. :error "[NameSilo DDNS] Could not get IPv4 for interface $wanif"
  26. }

  27. # Get NameSilo DDNS IPv4 address
  28. :local ip4ddns
  29. :local geturl "https://www.namesilo.com/api/dnsListRecords?version=$version&type=$type&key=$key&domain=$domain"
  30. :local getjsondata [/tool fetch mode=https http-method=get url=$geturl as-value output=user]
  31. :local getjson ($getjsondata->"data")
  32. :if ([:len $getjson] < 2) do={
  33. :log error "[NameSilo DDNS] No reply from NameSilo API."
  34. :error "[NameSilo DDNS] No reply from NameSilo API."
  35. }
  36. :local getcode ([:deserialize from=json value=$getjson options=json.no-string-conversion]->"reply"->"code")
  37. :if ($getcode != 300) do={
  38. :log error "[NameSilo DDNS] Reply code is $getcode, Please refer to https://www.namesilo.com/api-reference"
  39. :error "[NameSilo DDNS] Reply code is $getcode, Please refer to https://www.namesilo.com/api-reference"
  40. }
  41. :foreach v in=([:deserialize from=json value=$getjson options=json.no-string-conversion]->"reply"->"resource_record") do={
  42. :if (($v->"host") = $rrhost && ($v->"type") = "A") do={
  43. :set rrid ($v->"record_id")
  44. :set ip4ddns ($v->"value")
  45. }
  46. }
  47. :if ([:len $rrid] = 0 || [:len $ip4ddns] = 0) do={
  48. :log error "[NameSilo DDNS] Please check 'domian' and 'rrhost'"
  49. :error "[NameSilo DDNS] Please check 'domian' and 'rrhost'"
  50. }

  51. # UpdateRecord NameSilo DNS
  52. :if ($rrvalue != $ip4ddns) do={
  53. :log info "[NameSilo DDNS] Updating host $rrhost.$domain address."
  54. :local seturl "https://www.namesilo.com/api/dnsUpdateRecord?version=$version&type=$type&key=$key&domain=$domain&rrid=$rrid&rrhost=$rrhost&rrvalue=$rrvalue&rrttl=$rrttl"
  55. :local setjsondata [/tool fetch mode=https http-method=get url=$seturl as-value output=user]
  56. :local setjson ($setjsondata->"data")
  57. :if ([:len $setjson] > 2) do={
  58. :local setcode ([:deserialize from=json value=$setjson options=json.no-string-conversion]->"reply"->"code")
  59. :if ($setcode = 300) do={
  60. :log info "[NameSilo DDNS] Update success"
  61. } else={
  62. :log error "[NameSilo DDNS] Update failed"
  63. :error "[NameSilo DDNS] Update failed"
  64. }
  65. } else={
  66. :log error "[NameSilo DDNS] Update failed"
  67. :error "[NameSilo DDNS] Update failed."
  68. }
  69. }
复制代码





只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
发表于 2024-12-13 03:04 来自手机 | 显示全部楼层
研究研究,感谢分享!
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复

使用道具 举报

发表于 2024-12-13 06:32 来自手机 | 显示全部楼层
插个眼  惠来
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复

使用道具 举报

发表于 2024-12-13 07:51 | 显示全部楼层
研究研究,感谢分享!
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复

使用道具 举报

发表于 2024-12-13 08:09 | 显示全部楼层
研究一下.......
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复

使用道具 举报

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

使用道具 举报

发表于 2024-12-13 08:25 | 显示全部楼层
阿里云动态域名 也i要

点评

阿里云的论坛一大堆,我就不献丑了  详情 回复 发表于 2024-12-13 08:58
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复

使用道具 举报

发表于 2024-12-13 08:29 | 显示全部楼层
研究研究,感谢分享!
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复

使用道具 举报

发表于 2024-12-13 08:52 | 显示全部楼层
太好了,一直在找,谢谢分享!
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复

使用道具 举报

 楼主| 发表于 2024-12-13 08:58 | 显示全部楼层
yjwskj 发表于 2024-12-13 08:25
阿里云动态域名 也i要

阿里云的论坛一大堆,我就不献丑了
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

关闭

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

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

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

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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

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