0x00 序言
责任编辑即将如是说 Zimbra 版观测的多种方式,透过 Python 同时实现智能化,记录开发技术细节,开源码。
0x01 概要
责任编辑即将如是说附注:
同时实现路子
同时实现技术细节
开源码
0x02 同时实现路子
查阅 Zimbra 版的方式有很多,各有优劣,具体方式如下表所示:
1. 透过 Web 管理工作网页
透过应用程序出访 7071 管理工作网页,在主网页会表明当前 Zimbra 版
例如我的OWL表明为:
Zimbra Version: 9.0.0_GA_4273.NETWORK
透过该方式获得的版为准确版
2. 透过莱盖
注:Zimbra 插件预览可参照:
https://wiki.zimbra.com/wiki/Zimbra_Releases/9.0.0/patch_installation
3. 透过 Zimbra SOAP API
默认配置下,zimbraSoapExposeVersion 属性为 FLASE,查询命令:
返回结果:
需要将 zimbraSoapExposeVersion 属性设置为 TRUE 后,可以透过 Zimbra SOAP API 获得版,修正属性的命令为:发送的 SOAP 格式示例:默认配置下的返回结果:4. 透过 imap 协议5. 透过 imap over ssl 协议6. 透过特定 url0x03 同时实现技术细节综合以上观测方式,为了适应多种环境,在程序同时实现上选取了透过 imap 协议、透过 imap over ssl 协议和透过特定 url 三种方式同时实现
1. 透过 imap 协议
完整示例代码:
2. 透过 imap over ssl 协议需要将 ip 转为 hostname 作为参数,示例代码 :
存在部分环境无法将 ip 转为 hostname,导致报错: [ Errno 11004 ] host not found,所以在程序判断逻辑上优先使用 imap 协议3. 通过特定 url
0x04 开源码完整的同时实现代码已上传至 github,地址如下表所示:
https://github.com/3gstudent/Homework-of-Python/blob/master/Zimbra_GetVersion.py
代码首先尝试透过特定 url 获得版信息,再透过 imap 协议读取版信息,如果失败,最后透过 imap over ssl 协议读取版信息
0x05 小结
本文如是说了 Zimbra 版观测的多种方式,比较优劣,选取有效的方式并透过 Python 同时实现智能化,记录开发技术细节,开源码,作为一个很好的学习示例。