2009-07-07 9 views

Répondre

6

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

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

Certains serveurs peuvent ne pas avoir ces enregistrements publiés, mais la plupart d'entre eux ne veulent pas parler au monde extérieur. À titre d'exemple, vous pouvez utiliser « creuser » sur la ligne de commande pour vérifier un domaine, comme celui-ci:

% 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 Enregistrements SRV, et le point à la fin dit d'ignorer les paramètres de votre nom de domaine local. Si vous ne trouvez pas d'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 au serveur.

Une fois que vous avez le nom d'hôte et le numéro de port auxquels vous pouvez vous connecter, vous pouvez utiliser telnet hostname port pour voir s'il y a un processus d'écoute. Cependant, pour vraiment détecter s'il s'agit d'un serveur XMPP sur cet hôte/port, envoyez le 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"> 
0
+0

Wow, merci pour votre réponse très rapide :) J'ai oublié de mentionner que je suis à la recherche d'un moyen automatique. Cette vérification sera effectuée régulièrement dans mon application. –

2

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