![如何从外部查询 xmpp 服务器以了解其正在运行的版本](https://linux22.com/image/784242/%E5%A6%82%E4%BD%95%E4%BB%8E%E5%A4%96%E9%83%A8%E6%9F%A5%E8%AF%A2%20xmpp%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%BB%A5%E4%BA%86%E8%A7%A3%E5%85%B6%E6%AD%A3%E5%9C%A8%E8%BF%90%E8%A1%8C%E7%9A%84%E7%89%88%E6%9C%AC.png)
周围有许多 xmpps 服务器(ejabberd、prosody 等...)。是否有一个 api 调用可以告诉人们该服务器上运行的是什么品牌和什么版本?
答案1
API?可能大多数服务器都提供一些 API 来获取其名称和版本号。例如 ejabberd 提供状态 API 调用:
$ ejabberdctl status
The node ejabberd@localhost is started with status: started
ejabberd 23.01.58 is running in that node
但很明显这不是你想要的。每个服务器都提供其自定义 API,以及不同的使用方式。
很可能你想要的是使用XEP-0092:软件版本,大多数(如果不是全部)XMPP 服务器、客户端和组件都实现了该功能。使用该 XEP,您的客户端可以向任何服务器询问其软件名称和版本。
当然,服务器可能会回复,也可能不会回复,或者可能会提供虚假信息。例如,ejabberd 在mod_version,它默认是启用的,但可以禁用以不显示此信息。