[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: сокеты, помогите с запросом...
m378
Всем привет!

Тут проблемка возникла.... До этого с сокетами как-то совсем косвенно работал,
а тут возникла задачка, вроде элементарная, а решить пока не могу! Может подскажет
кто....
В общем нужно через проксю передать на определенный адрес и порт запрос вида
"GET 1.0 ....\r\n"

подключение к проксе затруднений не вызывает, а вот дальше. Запросить страничку
с этого домена могу, а вот как передать ему на определенный порт запрос?!!!

запрос делаю вот так, ответ приходит правильный, именно с нужного порта:

$http_request = "GET http://my.domain.ru:4343/ HTTP/1.0\r\n";
$http_request .= "HOST: domain.ru\r\n\r\n";

$fp = fsockopen($proxyhost, $proxyport);
if($fp){
fwrite($fp,$http_request);
while(!feof($fp)){
$http_response .= fgets($fp, 128);
}
}


а как на http://my.domain.ru:4343 передать запрос не знаю (((
без прокси то все понятно, а вот с проксей.....



Спустя 58 минут, 57 секунд (1.12.2010 - 15:47) glock18 написал(а):
глянь тут

http://ru2.php.net/fsockopen

в частности в примерах:

    private function get_url_via_proxy() { 

$proxy_fp = fsockopen($this->get_proxy_name(), $this->get_proxy_port());

if (!$proxy_fp) {
return false;
}
fputs($proxy_fp, "GET " . $this->get_request_url() . " HTTP/1.0\r\nHost: " . $this->get_proxy_name() . "\r\n\r\n");
while (!feof($proxy_fp)) {
$proxy_cont .= fread($proxy_fp, 4096);
}
fclose($proxy_fp);
$proxy_cont = substr($proxy_cont, strpos($proxy_cont, "\r\n\r\n") + 4);
return $proxy_cont;

}



у себя попробуй domain.ru замени в строке запроса на проксю

Спустя 21 минута, 43 секунды (1.12.2010 - 16:09) m378 написал(а):
т.е. подключать сокет к проксе, указывать ее, как хост, а как текст запроса передать my.domain.ru:4343 ? если я просто укажу
fputs($proxy_fp, "GET http://my.domain.ru:4343/ HTTP/1.0\r\nHost: " . $this->get_proxy_name() . "\r\n\r\n");

получится тоже самое?! как мне ему передать запрос сам?
вернее параметр, который нужно передать в этом запросе? ему нужно в запросе get
передать название домена. вот как это сделать?!

что-то типа
GET http://my.domain.ru:4343/?domain_name

не выходит....
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.