Question

Je cherche un moyen de vérifier si un serveur est en charge du protocole XMPP, à savoir XMPP-serveur est en cours d'exécution sur ce domaine.

Contrôle DNS Peut-être spécial ou quelque chose comme ça?

Était-ce utile?

La solution

La plupart des serveurs XMPP doivent supporter au moins un de ces enregistrements SRV DNS:

  • _xmpp-server._tcp .example.com
  • _xmpp-client._tcp .example.com

Certains serveurs peuvent ne pas avoir ces documents publiés, mais la plupart de ceux ne voudront pas parler au monde extérieur. À titre d'exemple, vous pouvez utiliser « creuser » sur la ligne de commande pour vérifier un domaine, comme ceci:

% dig +short -t SRV _xmpp-server._tcp.gmail.com.
20 0 5269 xmpp-server2.l.google.com.
20 0 5269 xmpp-server3.l.google.com.
20 0 5269 xmpp-server4.l.google.com.
5 0 5269 xmpp-server.l.google.com.
20 0 5269 xmpp-server1.l.google.com.

« + court » se débarrasse de beaucoup de détails DNS, « -t SRV » dit que nous voulons les enregistrements SRV, et le point à la fin dit d'ignorer vos paramètres locaux de nom de domaine.

(ajout en réponse à @ user188719) Si vous ne trouvez pas un enregistrement SRV, vous pouvez essayer d'utiliser le nom de domaine d'origine, et en supposant le port 5222 pour les connexions client ou 5269 pour les connexions serveur.

Une fois que vous avez le nom d'hôte et le numéro de port pour se connecter, vous pouvez utiliser telnet hostname port pour voir s'il y a un processus d'écoute là-bas. Cependant, pour détecter vraiment si c'est un serveur XMPP à cet hôte / port, envoyez au début d'un flux XMPP. nc ou netcat fournissent un mécanisme pratique pour cela. Exemple pour un contrôle serveur à serveur:

% echo "<stream:stream to='gmail.com' version='1.0' xmlns='jabber:server' xmlns:stream='http://etherx.jabber.org/streams' xmlns:db='jabber:server:dialback'>" | nc xmpp-server.l.google.com 5269
<stream:stream id="0A44AFB86521393A" xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:server" xmlns:db="jabber:server:dialback">

Autres conseils

Après l'explication de Joe, je personnellement vérifier les dossiers SRV et revenir à un rapide (délai d'attente court) se connecter sur le port 5269. check cache ensuite le résultat.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top