Тут проблемка возникла.... До этого с сокетами как-то совсем косвенно работал,
а тут возникла задачка, вроде элементарная, а решить пока не могу! Может подскажет
кто....
В общем нужно через проксю передать на определенный адрес и порт запрос вида
"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
в частности в примерах:
у себя попробуй domain.ru замени в строке запроса на проксю
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
не выходит....
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
не выходит....