Назад | Перейти на главную страницу

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

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

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

Основной порт по умолчанию для jabber без SSL - 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

Если сервер 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).

Нет однозначного способа проверки. Nmap может дать вам некоторое представление, но возникнут некоторые этические и, возможно, юридические проблемы с его запуском на серверах других людей.

Если это ваш сети, вы можете попробовать запустить что-то вроде Spiceworks в подсети для поиска систем, на которых работает сервер XMPP.

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