Порт для fsockopen

  • Автор темы MisterX
  • Дата начала

MisterX

Guest
Порт для fsockopen

Как можно определить порт на котором висит сайт в случае когда несколько сайтов висят на одном айпишнике ? Пробовал 80 выдает что-то левое с кодом 302 Found, на 8080 вообще нечего не выдается, кроме Bad file descriptor. А как все-таки определить реальный порт ? Перебор не предлагать:) Это мне нужно для посылки post запроса, так что использовать file('http://...') нельзя.
 

aloner

Guest
Почитай спецификацию HTTP 1.1.

Имя сайта определяется заголовком Host: при виртуальном хочтинге. А порт обычно 80.
 

MisterX

Guest
A через HTTP 1.0 никак ?
А порт 80 только если отдельный IP адрес, что огромная редкость при виртуальном хостинге.
 

MisterX

Guest
Да и еще - нет ли какого-нибудь готового класса или функции, посылающей POST запрос, которая сама определяет порт. Все примеры которые я встречал здесь в форуме и на других сайтах трубуют вводить порт самостоятельно.
 

Crazy

Developer
Автор оригинала: MisterX
А порт 80 только если отдельный IP адрес, что огромная редкость при виртуальном хостинге.
Тебя обманули. Почитай про name-based virtual hosts.
 

Kornet

Guest
2MisterX:
Действительно, при виртуальном хостинге, апачь в частности, разруливает сайты исходя из переменной Server в запросе... А порт всего лишь один - 80.
 

MisterX

Guest
2Kornet:
Т.е. ты хочешь сказать должен работать следующий код
fsockopen('www.hostobzor.ru', 80, &$errorcode);
// запрос GET / ............

Вместо сайта получишь просто ответ от Валуйхоста 302 Found, и никакой странички сайта.
 

voodoo

Новичок
MisterX, а ты попробуй запрос GET правильно написать.

ну, хотя бы,
GET http://www.hostobzor.ru/db/ HTTP/1.0
 

MisterX

Guest
Да уж, повнимательней мне надо быть - забыл указать Host: в запросе.
2voodoo: Сомнительно что-бы твой запрос работал - HTTP 1.0 вроде как не поддерживает абсолютные пути.
 
Сверху