让网维变得简单,快速,准确。拒绝浪费时间,解放出更多的时间陪陪家人。 注册 | 登陆

新建ROS的ALIDDNS脚本更新项目

本项目完全免费公开脚本源码。

服务语言环境:golang

ROS的ALIDDNS脚本更新:
1.可对接
阿里云的DDNS进行更新。
2.一个脚本可以支持IPV4和IPV6的DDNS更新。
3.检测子域名不存在时自动创建。
4.支持域名使用V4+V6双栈,2个IP共用一个域名。
5.支持更新不同线路的记录值。

6.支持自定义TTL记录值。
7.支持接口状态回显,方便调试错误。

使用条件:
1.必须在阿里云开通AccessKey功能,获取AccessKey ID和密匙。
2.必须将域名托管到阿里云DNS。
3.也兼容其他系统使用get提交。(id必填,secret必填,domain必填,IP选填,line选填)
4.支持123.ros6.com这样的2级域名,不支持123.456.ros6.com这样的更多级域名,也不支持更新ros6.com这样的顶级域名

ROS脚本
  1. #更新ALIDDNS脚本精简版#    
  2. #定义更新的域名#    
  3. :global ddns1 "www.ros6.com"    
  4. #定义阿里云ID#    
  5. :global id1 "16字节长度AccessKey ID"    
  6. #定义阿里云Secret#    
  7. :global secret1 "30字节长度的密匙"    
  8. #下面内容请勿修改#    
  9. #更新IPV4#    
  10. :local results [/tool fetch url=("https://mail.ros6.com:6180/id=$id1&secret=$secret1&domain=$ddns1") check-certificate=no as-value output=user]  
  11. :if ($results->"status" = "finished"do={  
  12. :local result ($results->"data")  
  13. :log warning $result  

 
ROS脚本
  1. #更新ALIDDNS脚本完整版#  
  2. #定义更新的接口名#  
  3. :global ddnsint1 "pppoe-out1"  
  4. #定义更新的域名#  
  5. :global ddns1 "www.ros6.com"  
  6. #定义更新的线路类型(default,unicom,telcom)#  
  7. :global ddnsline1 "default"  
  8. #定义TTL参数#  
  9. :global ttl1 600  
  10. #定义更新接口对应的DNS#  
  11. :global ddnsd1 114.114.114.114  
  12. #获取更新域名对应的IP#  
  13. :global ddnsres1  
  14. :do {:set ddnsres1 [resolve $ddns1 server=$ddnsd1]} on-error={:set ddnsres1 ""}  
  15. #定义阿里云ID#  
  16. :global id1 "16字节长度AccessKey ID"  
  17. #定义阿里云Secret#  
  18. :global secret1 "30字节长度的密匙"  
  19. #下面内容请勿修改#  
  20. #更新IPV4#  
  21. :global ddnsip1 [/ip address get [find interface=$ddnsint1] address]  
  22. :set ddnsip1 [:pick $ddnsip1 0 [:find $ddnsip1 "/"]]  
  23. :if ($ddnsres1 != $ddnsip1do={  
  24. :local results [/tool fetch url=("https://mail.ros6.com:6180/id=$id1&secret=$secret1&domain=$ddns1&ip=$ddnsip1&line=$ddnsline1&ttl=$ttl1") check-certificate=no as-value output=user]  
  25. :if ($results->"status" = "finished"do={  
  26. :local result ($results->"data")  
  27. :log warning ("ALIDDNS:IPV4 ".$result)  
  28. }  
  29. #更新IPV6#  
  30. :if ([/system package find name="ipv6" disabled=no] !=""do={  
  31. :if ([/ipv6 dhcp-client find interface=$ddnsint1] !=""do={  
  32. :global ddnsipv61 [/ipv6 dhcp-client get [/ipv6 dhcp-client find interface=$ddnsint1] prefix]  
  33. :set ddnsipv61 [:pick $ddnsipv61 0 [:find $ddnsipv61 "/"]]  
  34. :if ($ddnsipv61 !=""do={  
  35. :local results [/tool fetch url=("https://mail.ros6.com:6180/id=$id1&secret=$secret1&domain=$ddns1&ip=$ddnsipv61&line=$ddnsline1&ttl=$ttl1") check-certificate=no as-value output=user]  
  36. :if ($results->"status" = "finished"do={  
  37. :local result ($results->"data")  
  38. :log warning ("ALIDDNS:IPV6 ".$result)  
  39. }  
  40. }}}  
  41. }  

Tags: ali, 解析, ddns, ipv6, 动态

« 上一篇 | 下一篇 »

 

2条记录访客评论

引用 ros新手 说过的话:
能详细说下ROS脚本放在哪里呢?不是是就在SYSTEM->SCRIPTS里面新建一个脚本就可以了?看你以前的文章说要放在PPP模板里,能再详细说一下吗?非常感谢。

可以放在PPP模板里,也可以放计划任务定时运行。建议是放PPP模板里。

Post by 熊茂祥 on 2020, November 16, 1:42 PM 引用此文发表评论 #1

能详细说下ROS脚本放在哪里呢?不是是就在SYSTEM->SCRIPTS里面新建一个脚本就可以了?看你以前的文章说要放在PPP模板里,能再详细说一下吗?非常感谢。

Post by ros新手 on 2020, November 16, 12:12 AM 引用此文发表评论 #2


发表评论

评论内容 (必填):