Anton Mironov Asked: 2009-07-09 06:27:04 +0800 CST2009-07-09 06:27:04 +0800 CST 2009-07-09 06:27:04 +0800 CST 如何检查服务器是否支持 xmpp 协议? 772 我正在寻找一种方法来检查服务器是否支持 xmpp 协议,即 xmpp-server 正在此域上运行。 也许特殊的DNS检查或类似的东西? xmpp 5 个回答 Voted Best Answer Kyle Brandt 2009-07-09T06:45:16+08:002009-07-09T06:45:16+08:00 非 SSL jabber 的主要默认端口是 5222。您可以使用 telnet 向其吐出一些 xml 并查看是否收到 XML 响应: telnet suspectedServer 5222 <?xml version="1.0"?> <stream:stream to="foo.com" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams" version="1.0"> 这当然可以为多个服务器和多个端口编写脚本,使用 nc (netcat) 编写脚本可能更容易。 对于需要 TLS 连接的 XMPP 服务器,请使用以下命令进行测试:- openssl s_client -starttls xmpp -connect suspectedserver:5222 ktower 2009-07-09T06:48:42+08:002009-07-09T06:48:42+08:00 如果 XMPP 服务器配置为与其他XMPP 服务器一起使用,则该域可能在 DNS 中具有 SRV 记录。例如: $ dig _xmpp-server._tcp.google.com srv +short 20 0 5269 xmpp-server1.l.google.com. 20 0 5269 xmpp-server4.l.google.com. 20 0 5269 xmpp-server3.l.google.com. 5 0 5269 xmpp-server.l.google.com. 20 0 5269 xmpp-server2.l.google.com. 这绝不是找到 XMPP 服务器的明确方法,因为独立站点很可能在 DNS 中没有这些数据。然而,这是查找 jabber 服务器的更好方法,因为数据已发布并且不需要任何端口探测。它也在 RFC 3920(XMPP 协议定义)中定义。 Cian 2009-07-09T06:36:25+08:002009-07-09T06:36:25+08:00 没有确定的检查方法。Nmap 会给你一些指示,但是在其他人的服务器上运行它会存在一些道德问题,并且可能存在法律问题。 Russ Warren 2009-07-09T06:41:15+08:002009-07-09T06:41:15+08:00 如果是您的网络,您可以尝试跨子网运行 Spiceworks 之类的东西来寻找运行 XMPP 服务器的系统。 Andrioid 2009-07-09T06:52:39+08:002009-07-09T06:52:39+08:00 如果这是一个联合服务器(不,不是 Startrek),那么您可以按照此处的说明检查 SRV DNS 条目。
非 SSL jabber 的主要默认端口是 5222。您可以使用 telnet 向其吐出一些 xml 并查看是否收到 XML 响应:
这当然可以为多个服务器和多个端口编写脚本,使用 nc (netcat) 编写脚本可能更容易。
对于需要 TLS 连接的 XMPP 服务器,请使用以下命令进行测试:-
如果 XMPP 服务器配置为与其他XMPP 服务器一起使用,则该域可能在 DNS 中具有 SRV 记录。例如:
这绝不是找到 XMPP 服务器的明确方法,因为独立站点很可能在 DNS 中没有这些数据。然而,这是查找 jabber 服务器的更好方法,因为数据已发布并且不需要任何端口探测。它也在 RFC 3920(XMPP 协议定义)中定义。
没有确定的检查方法。Nmap 会给你一些指示,但是在其他人的服务器上运行它会存在一些道德问题,并且可能存在法律问题。
如果是您的网络,您可以尝试跨子网运行 Spiceworks 之类的东西来寻找运行 XMPP 服务器的系统。
如果这是一个联合服务器(不,不是 Startrek),那么您可以按照此处的说明检查 SRV DNS 条目。