サーバーが xmpp プロトコルをサポートしているかどうかを確認するにはどうすればよいですか?

サーバーが xmpp プロトコルをサポートしているかどうかを確認するにはどうすればよいですか?

サーバーが xmpp プロトコルをサポートしているかどうか、つまり xmpp-server がこのドメインで実行されているかどうかを確認する方法を探しています。

特別な DNS チェックか何かでしょうか?

答え1

非 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

答え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

これがフェデレーションサーバー(スタートレックではない)の場合は、説明されているようにSRV DNSエントリを確認できます。ここ

関連情報