Как проверить доступность порта на клиентском JavaScript?

Можно ли обнаружить в JavaScript (в браузере), если порт отключен брандмауэром или маршрутизатором?

3 ответа

Нет, с чистым javascript это невозможно (кроме создания HTTP-запросов к конкретным портам, но эти результаты малозначительны), однако вы можете проверить снаружи (другими словами, ваш сервер) независимо от того, порт открыт. Другим вариантом было бы использовать java-апплет или плагин для браузера, который мог бы сделать это для вас, если вам это действительно нужно, и в этом случае есть различные инструменты с открытым исходным кодом, которые вы, вероятно, могли бы перенести, если у вас есть необходимый опыт с ними. Однако обратите внимание, что это не совсем удобно. (В любом случае, было бы полезно, если бы вы описали точный сценарий, где вам это нужно, поскольку может быть совсем другое решение.)


Вы можете видеть, есть ли ожидаемый ответ или нет.

При использовании javascript нужно оставаться в границах HTTP.

Конечно, вы можете отправить запрос Ajax на любой порт сервера и посмотреть, есть ли у вас ошибка. Если вы хотите проверить порт для текущего компьютера, возможно, отправка запроса на "localhost: 843" может помочь.

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

Нам нужна дополнительная информация, чтобы помочь вам.


Если вы достаточно гибки, чтобы использовать jQuery, см. этот Ответ от меня. Это будет не только проверять наличие порта, но также и то, будет ли код ответа успеха 200 поступать с удаленного (или любого, я имел в виду, что он поддерживает также междоменный) сервер. Также даем решение здесь. Я буду проверять здесь порт 843.

                            

licensed under cc by-sa 3.0 with attribution.