Wie überprüfe ich, ob ein Server das XMPP-Protokoll unterstützt?

Wie überprüfe ich, ob ein Server das XMPP-Protokoll unterstützt?

Ich suche nach einer Möglichkeit um zu überprüfen, ob ein Server das XMPP-Protokoll unterstützt, d. h. ob in dieser Domäne ein XMPP-Server ausgeführt wird.

Vielleicht spezielle DNS-Prüfung oder so etwas?

Antwort1

Der wichtigste Standardport für Nicht-SSL-Jabber ist 5222. Sie könnten mit Telnet etwas XML darauf spucken und sehen, ob Sie eine XML-Antwort erhalten:

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"> 

Dies kann natürlich für mehrere Server und mehrere Ports geskriptet werden, wahrscheinlich einfacher ist es mit nc (netcat).

Testen Sie XMPP-Server, die TLS-Verbindungen erfordern, mit: -

openssl s_client -starttls xmpp -connect suspectedserver:5222

Antwort2

Wenn ein XMPP-Server für die Arbeit mitandereXMPP-Server, es ist möglich, dass die Domäne einen SRV-Eintrag im DNS hat. Beispiel:

$ 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.

Dies ist keineswegs eine definitive Methode, um XMPP-Server zu finden, da eigenständige Websites diese Daten höchstwahrscheinlich nicht im DNS haben. Es ist jedoch eineschönerMöglichkeit, einen Jabber-Server zu finden, da die Daten veröffentlicht werden und keine Port-Prüfung erforderlich ist. Es ist auch in RFC 3920 (der XMPP-Protokolldefinition) definiert.

Antwort3

Es gibt keine definitive Möglichkeit, dies zu überprüfen. Nmap würde Ihnen einen Anhaltspunkt geben, aber es wäre ethisch und möglicherweise auch rechtlich problematisch, es auf den Servern anderer Leute laufen zu lassen.

Antwort4

Wenn es sich um einen Federation-Server handelt (nein, nicht Startrek), können Sie die SRV-DNS-Einträge wie folgt überprüfen:Hier.

verwandte Informationen