Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как определить, на порту сидит прокси или апач, Как определить, что обитает на порту 
:(
    Опции темы
StealtH
Дата 16.9.2004, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 124
Регистрация: 16.9.2004

Репутация: нет
Всего: нет



Вообщем такая задачка, как определить программно, какой сервис запущен на указанном порту, а именно прокси это или апач. Всем известно, что прокси обитают на портах 80, 8080 и т.д., список большой, на этих же портах может сидет и апач, но вот как по http-заголовкам определить принадлежность именно к этому сервису, а не к веб. Есть скрипт, который сканирует определенные порты на наличие прокси, после сканирования он должен определить наличие на этом порту прокси, как это сделать программно, что нужно послать в порт, и как выловить ответ?
Хелп, плиз очень надо, если возможно, то примерчик не помешает smile.gif
Заранне благодарен.

PM MAIL   Вверх
ida
Дата 21.9.2004, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


замужем
****


Профиль
Группа: Завсегдатай
Сообщений: 2277
Регистрация: 14.5.2002
Где: Санкт-Петербург

Репутация: нет
Всего: 58



И как давно Апачи стали обитать на каких-либо портах, кроме 80-го?... Скорее всего по ответу определить, что это НЕ апач (значит, что-то другое), поскольку структура ответа http-сервера заранее известна, а прокси ИМХО ответит что-нибудь другое. В порт послать http-запрос, соответственно, как будто обращаясь к веб-серверу. И в строке ответа Host: будет адрес хоста, на котором находится запрашиваемый объект (страница index.html, к примеру). Нет объекта - нет Апача.

Это сообщение отредактировал(а) ida - 21.9.2004, 13:24
PM WWW   Вверх
Akina
Дата 21.9.2004, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: нет
Всего: 454



ida
Цитата
И как давно Апачи стали обитать на каких-либо портах, кроме 80-го?...

Ну, это зависит от настроек...

StealtH
Цитата
прокси это или апач

Да собсно послать ему 2 штуки GET-ов - на его адрес и на какой-нить другой адрес. И проанализировать ответ. Апача ответит на GET по своему адресу, но не отреагирует на другой адрес - или отреагирует ошибкой. Прокся должна наоборот, не ответить или ответить ошибкой на GET к своему адресу и нормально ответить на GET к чужому адресу. Собсно если хоть немного представляешь как работает прокси и как веб-сервер - должен понимать еще и какая будет разница при обращении по IP и по URI... т.е. формально различить можно.

Однако в общем случае задача неразрешима - представь себе что стоИт прокся, у которой этот порт смаппирован на Апачу на другой машине... можно придумать случаи и посложнее...

А вообще - зачем?



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
StealtH
Дата 22.9.2004, 07:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 124
Регистрация: 16.9.2004

Репутация: нет
Всего: нет



Цитата
Да собсно послать ему 2 штуки GET-ов - на его адрес и на какой-нить другой адрес. И проанализировать ответ. Апача ответит на GET по своему адресу, но не отреагирует на другой адрес - или отреагирует ошибкой. Прокся должна наоборот, не ответить или ответить ошибкой на GET к своему адресу и нормально ответить на GET к чужому адресу.


Это понятно что он должен как-то реагировать, если порт вообще живой, он и реагирует, если апач то пишет document.html(к примеру) not found on this server, прокси на запрос выдает запрашиваемый документ, или ошибку как правило 500(connect: Unknown error), об этом в данный момент вопрос не стоит. Сейчас трабла в том, каким способом отловить ошибку и обработать ее


$req = HTTP::Request->new(GET => $host);
use HTTP::Status;
if ($req != RC_OK) {
print status_message($req), "\n"; }

как-то не особо действует, хелп по данному вопрос особенно краток, может я не так это все вызываю...

Подскажите по данному поводу

Цитата
А вообще - зачем?

Да вот есть идея одна, должна получиться замечательная утилита, доделаю подкину ссылку

Это сообщение отредактировал(а) StealtH - 22.9.2004, 08:15
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: CGI программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к CGI программированию
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", качать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: разработка для Web | Следующая тема »


 




[ Время генерации скрипта: 0.0499 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.