如何檢查伺服器是否支援xmpp協定?

如何檢查伺服器是否支援xmpp協定?

我正在尋找一種方法來檢查伺服器是否支援 xmpp 協議,即 xmpp-server 正在該網域上運行。

也許是特殊的 DNS 檢查或類似的東西?

答案1

非 SSL jabber 的主要預設連接埠是 5222。

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

答案2

如果 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 協定定義)中也對其進行了定義。

答案3

沒有明確的檢查方法。 Nmap 會給你一些指示,但是在其他人的伺服器上運行它會存在一些道德問題,甚至可能存在法律問題。

答案4

如果這是聯合伺服器(不,不是 Startrek),那麼您可以按照說明檢查 SRV DNS 條目這裡

相關內容