Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Определение имени хоста по запросу, Помогите разобраться 
V
    Опции темы
Darktemp
Дата 5.6.2008, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Доброго времени суток. 
Ситуация такая: есть  некий сервер, на котором несколько виртуальных хостов. С одного из них шлется HTTP-запрос второму серверу на скачивание файла. После чего второй сервер переадресовывает его моему cgi-скрипту, который должен определить с какого хоста был послан запрос. Собственно вопрос: каким образом можно узнать имя этого хоста?  
З.Ы. Пробовал с помощью GetHostByAddr, но функция возвращает имя самого сервера.
PM MAIL   Вверх
Snowy
Дата 5.6.2008, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



По IP никак - только по GET запросу.
Эту информацию тебе может сообщить только сам сервер.
PM MAIL   Вверх
Darktemp
Дата 5.6.2008, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата

По IP никак - только по GET запросу.
Эту информацию тебе может сообщить только сам сервер.


Хм.. Тогда в каком поле запроса сервер может передавать имя? В Referrer?
PM MAIL   Вверх
Snowy
Дата 5.6.2008, 20:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Нет, не рефер.
Имя передаётся в поле HOST, согласно http протоколу.
Обычный пример http запроса:
Код

GET /script.cgi HTTP/1.1
Host: server.ru
User-Agent: Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9b5) Gecko/2008050509 Firefox/3.0b5
Accept: text/html
Connection: close

Вот поле Host тебе и нужно узнать у сервера.
PM MAIL   Вверх
Darktemp
Дата 5.6.2008, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Я имел ввиду другое:

С somesite-one.ru на mysite.ru посылается запрос, к примеру такой:

Код

GET /images/image.jpg HTTP/1.1
User-Agent: Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9b5) Gecko/2008050509 Firefox/3.0b5
Host: mysite.ru
Accept: image/jpeg
Connection: Keep-Alive


Скажем, somesite-one.ru находится на том же сервере, что и somesite-two.ru, somesite-three.ru.
Мне нужно знать, что данный запрос пришел от somesite-one.ru, а не от somesite-two.ru, somesite-three.ru.

Если это возможно реализовать, то как?
PM MAIL   Вверх
Snowy
Дата 5.6.2008, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Нет, нельзя.
Разве что рефер поковырять, но это ничего не гарантирует.
Там всего лишь урл, на котором находился браузер до запроса.
Вот, если завести параметр для скрипта, по которому можно идентифицировать хост и страница хоста его тебе расскажет, тогда да.
PM MAIL   Вверх
Darktemp
Дата 5.6.2008, 21:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Snowy @  5.6.2008,  21:38 Найти цитируемый пост)
Вот, если завести параметр для скрипта, по которому можно идентифицировать хост и страница хоста его тебе расскажет, тогда да.

Поподробнее, если можно...
PM MAIL   Вверх
Snowy
Дата 5.6.2008, 22:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



В смысле, подробней?
Имя хоста должно передаваться GET или POST запросом.
Пример: http://www.myserv.ru/script.cgi?FromHost=somesite-one.ru
Вместо имени можно использовать код сервера.
http://www.myserv.ru/script.cgi?r=2831
А у себя хранишь в базе или скрипте, что 2831 - это somesite-one.ru
Простой пример - счётчик посещений.
<img src="http://db.c7.b1.a0.top.list.ru/counter'+'?id=97025
Вызывается скрипт счётчика, который получает id=97025
А в базе запись: 97025 = винград
PM MAIL   Вверх
Darktemp
Дата 5.6.2008, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Большое спасибо за ответ. Тема закрыта.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

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

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


 




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


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

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