Данный API предназначен для определения на клиентской стороне возможности принимать входящие соединения из интернета.
Окончательное решение о доступности входящих соединений принимает клиент, сервер выступает вспомогательной стороной для отправки данных клиенту.
Поиск сервера, работающего по данному API производится через Регистратуру, при этом предпочтение клиент должен отдавать портчекеру, принадлежащему текущему оператора связи клиента. Это нужно для снижения нагрузки на сервера Инетры, а также для определения возможности принять входящие соединения внутри оператора связи для абонентов с частными IP адресами.
Параметры:
На сервер посылается запрос http://server.name/checkport/. Параметры (передаются GET-запросом):
Имя | Значение | Смысл |
---|---|---|
proto |
udp , tcp |
протокол, который использовать для соединения |
port |
число | числовое значение порта |
data |
непустая строка | значение, которое надо передать клиенту |
При получении такого запроса сервер отсылает на порт (port
) используя протокол (proto
) декодированные данные (data
). Таймаут на отправку запроса задается в конфигурации сервера.
В ответ сервер отправляет JSON-ответ с полями:
Поле | Обязательное | Значение |
---|---|---|
ip |
да | IP адрес, с которого сервер получил запрос |
error |
нет | описание ошибки, если она случилась (неверно заданы параметры) |
Клиент при проверке порта ожидает получения указанной строки и входит в активный режим только если получены те же данные, что и отправлялись, для всех портов. В противном случае клиент остается в пассивном режиме.