Как проверить, поддерживает ли сервер протокол XMPP?

Как проверить, поддерживает ли сервер протокол XMPP?

Я ищу способ проверить, поддерживает ли сервер протокол XMPP, т. е. запущен ли XMPP-сервер на этом домене.

Может быть, специальная проверка DNS или что-то в этом роде?

решение1

Основной порт по умолчанию для не-SSL Jabber — 5222. Вы можете отправить на него немного XML с помощью telnet и посмотреть, получите ли вы 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).

Для серверов XMPP, требующих TLS-подключений, выполните тестирование с помощью: -

openssl s_client -starttls xmpp -connect suspectedserver:5222

решение2

Если сервер XMPP настроен для работы сдругойXMPP-серверы, возможно, домен будет иметь запись SRV в DNS. Например:

$ 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

Если это сервер федерации (нет, не Startrek), то вы можете проверить записи SRV DNS, как описаноздесь.

Связанный контент