Как определить, какой сервер прослушивает порт 80 - PullRequest
3 голосов
/ 09 июля 2010

Мне нужно определить, какой веб-сервер (IIS, Apache, Jetty) работает на порте 80 в Java.

Существуют ли решения для получения информации через порт 80?

Спасибо и с уважением

Stefan

Ответы [ 2 ]

6 голосов
/ 09 июля 2010

Вы можете задать это - выполнить запрос HEAD, например, открыть TCP-соединение на порту 80 и просто отправить

HEAD / HTTP/1.0

или

HEAD / HTTP/1.1
Host: the.server.hostname.com

, и ответ должен содержать серверline

Server: Microsoft-IIS/5.1

между прочим.

Если вы хотите спросить у ОС, какой процесс, тем не менее, я не знаю Java-переносимого способа.Командная строка, которую вы запускаете netstat -ano или (-anp в Linux, я думаю), которая даст вам номер процесса, прослушивающий порт 80, а затем вы можете найти его, чтобы выяснить, какой именно сервер имеет порт.

3 голосов
/ 09 июля 2010

Посмотрите на заголовок Server: HTTP . Обычно он содержит что-то вроде этого:

Server: Apache/2.2.10 (SpaceNet) PHP/5.2.6

Конечно, сервер может отправлять все, что ему нравится, или вообще ничего не отправлять.

...