
Estou procurando uma maneira de verificar se um servidor suporta o protocolo xmpp, ou seja, o xmpp-server está sendo executado neste domínio.
Talvez uma verificação especial de DNS ou algo parecido?
Responder1
A principal porta padrão para jabber não-SSL é 5222. Você pode cuspir um pouco de xml usando telnet e ver se obtém uma resposta 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">
É claro que isso pode ser programado para vários servidores e portas, provavelmente mais fácil de criar scripts com nc (netcat).
Para servidores XMPP que requerem conexões TLS, teste com: -
openssl s_client -starttls xmpp -connect suspectedserver:5222
Responder2
Se um servidor XMPP estiver configurado para funcionar comoutroServidores XMPP, é possível que o domínio tenha um registro SRV no DNS. Por exemplo:
$ 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.
Esta não é de forma alguma uma forma definitiva de encontrar servidores XMPP, uma vez que sites independentes provavelmente não possuem esses dados no DNS. É, no entanto, umAgradávelmaneira de encontrar um servidor jabber, já que os dados são publicados e não requerem nenhuma sondagem de porta. Também é definido na RFC 3920 (a definição do protocolo XMPP).
Responder3
Não há uma maneira definitiva de verificar. O Nmap lhe daria alguma indicação, mas haveria algum problema ético e possivelmente legal em executá-lo em servidores de outras pessoas.
Responder4
Se este for um servidor de federação (não, não o Startrek), você poderá verificar as entradas DNS SRV conforme explicadoaqui.