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

新建ROS的ALIDDNS脚本更新项目

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

服务语言环境:golang

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

使用条件:
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. #定义更新接口对应的DNS#  
  9. :global ddnsd1 114.114.114.114  
  10. #获取更新域名对应的IP#  
  11. :global ddnsres1 [resolve $ddns1 server=$ddnsd1]  
  12. #定义阿里云ID#  
  13. :global id1 "16字节长度AccessKey ID"  
  14. #定义阿里云Secret#  
  15. :global secret1 "30字节长度的密匙"  
  16. #下面内容请勿修改#  
  17. #更新IPV4#  
  18. :global ddnsip1 [/ip address get [find interface=$ddnsint1] address]  
  19. :set ddnsip1 [:pick $ddnsip1 0 [:find $ddnsip1 "/"]]  
  20. :if ($ddnsres1 != $ddnsip1do={  
  21. :local results [/tool fetch url=("https://mail.ros6.com:6180/id=$id1&secret=$secret1&domain=$ddns1&ip=$ddnsip1&line=$ddnsline1") check-certificate=no as-value output=user]  
  22. :if ($results->"status" = "finished"do={  
  23. :local result ($results->"data")  
  24. :log warning ("ALIDDNS:IPV4 ".$result)  
  25. }  
  26. #更新IPV6#  
  27. :if ([/system package find name="ipv6" disabled=no] !=""do={  
  28. :if ([/ipv6 dhcp-client find interface=$ddnsint1] !=""do={  
  29. :global ddnsipv61 [/ipv6 dhcp-client get [/ipv6 dhcp-client find interface=$ddnsint1] prefix]  
  30. :set ddnsipv61 [:pick $ddnsipv61 0 [:find $ddnsipv61 "/"]]  
  31. :if ($ddnsipv61 !=""do={  
  32. :local results [/tool fetch url=("https://mail.ros6.com:6180/id=$id1&secret=$secret1&domain=$ddns1&ip=$ddnsipv61&line=$ddnsline1") check-certificate=no as-value output=user]  
  33. :if ($results->"status" = "finished"do={  
  34. :local result ($results->"data")  
  35. :log warning ("ALIDDNS:IPV6 ".$result)  
  36. }  
  37. }}}  
  38. }  

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

« 上一篇 | 下一篇 »

 

发表评论

评论内容 (必填):