Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » не могу заставить работать cUrl через прокси

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2

Открыть новую тему     Написать ответ в эту тему

Delphi6



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброе время суток,
Срочно нуждаюсь в помощи в довольно сложном вопросе, ни как не могу заставить работать cUrl через прокси. Даже купил собственный прокси для того что бы быть уверенным что с прокси все порядке Я прочитал в доках что чтобы использовать прокси надо задать параметры: CURLOPT_PROXY, CURLOPT_HTTPPROXYTUNNEL и CURLOPT_PROXYUSERPWD если буду нужна авторизация.
Дело в том что при попытке воспользоваться прокси без пароля в результате в переменной $this->PageContent получаю следующий результат:

Код:
<html><body></body></html>

при попытке воспользоваться купленным прокси (с паролем) получаю вот такой результат в переменной $this->PageContent

Код:
HTTP/1.0 200 Connection established
 
HTTP/1.1 200 OK
P3P: CP="ALL DSP COR CURa ADMa DEVa TAIa PSAa PSDa IVAa IVDa CONa TELa OUR STP UNI NAV STA PRE"
Date: Sat, 12 Nov 2005 00:13:00 GMT
Connection: close
Accept-Ranges: bytes
Content-Type: text/html; charset=ISO-8859-1
Cache-Control: no-cache
Content-Length: 9834

настораживает то что параметр Content-Length принимает нормальное значение, а где сам контент? 9 килобайт?
Ниже привожу код где я пользуюсь cUrl-ом.
Спасибо за помощь

Код:
    curl_setopt($this->cUrl, CURLOPT_URL, $RequestUrl);
    curl_setopt($this->cUrl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($this->cUrl, CURLOPT_REFERER, 'http://rapidshare.de/');
    curl_setopt($this->cUrl, CURLOPT_USERAGENT, 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0');
    curl_setopt($this->cUrl, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($this->cUrl, CURLOPT_HEADERFUNCTION, array(&$this,'ReadHeader'));
 
    curl_setopt($this->cUrl, CURLOPT_HTTPPROXYTUNNEL, 1);
    curl_setopt($this->cUrl, CURLOPT_PROXY, '195.175.37.72:80');
    //curl_setopt($this->cUrl, CURLOPT_PROXY, 'pr1.dreamvpn.com:8080');
    //curl_setopt($this->cUrl, CURLOPT_PROXYUSERPWD, 'administrator@gesoft.org:d?*******@1');
 
    if ($this->CookieData !== '') {
      curl_setopt($this->cUrl, CURLOPT_COOKIE, $this->CookieData);
    }
    if ($_SERVER['REQUEST_METHOD'] === 'POST') {
      curl_setopt($this->cUrl, CURLOPT_POST, 1);
      curl_setopt($this->cUrl, CURLOPT_POSTFIELDS, $_POST);
    }
    $this->PageContent = curl_exec($this->cUrl);
 
    curl_close($this->cUrl);

Всего записей: 2631 | Зарегистр. 06-07-2004 | Отправлено: 03:17 12-11-2005 | Исправлено: Delphi6, 03:18 12-11-2005
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Delphi6
//curl_setopt($this->cUrl, CURLOPT_HTTPPROXYTUNNEL, 1);  

Цитата:
CURLOPT_HTTPPROXYTUNNEL (boolean)  
Toggles whether non-HTTP transactions are tunnelled through an HTTP proxy (as set up with CURLOPT_PROXY, for instance). This option is only available if the cURL version is 7.3 or later and the PHP version is 4.0.4 or later. Unless you know exactly why you need to use this option, you probably don't.


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 03:55 12-11-2005
Delphi6



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
Значит эта опция мне вообще не нужна? Хочу тебя обрадовать, скрипт все равно не работает
Вот результат при использовании личного прокси:
HTTP/1.0 200 OK P3P: CP="ALL DSP COR CURa ADMa DEVa TAIa PSAa PSDa IVAa IVDa CONa TELa OUR STP UNI NAV STA PRE" Date: Sat, 12 Nov 2005 15:44:27 GMT Accept-Ranges: bytes Content-Type: text/html; charset=ISO-8859-1 Content-Length: 9531 X-Cache: MISS from DreamVPN.com
И результат при использовании обыкновенного прокси:
HTTP/1.1 200 OK P3P: CP="ALL DSP COR CURa ADMa DEVa TAIa PSAa PSDa IVAa IVDa CONa TELa OUR STP UNI NAV STA PRE" Date: Sat, 12 Nov 2005 15:46:06 GMT Accept-Ranges: bytes Content-Type: text/html; charset=ISO-8859-1 Cache-Control: no-cache Content-Length: 9581 Via: 1.1 TTCache04 (Jaguar/3.0-59) Connection: close
Вопрос, где сам контент? Я уже даже в поддержку php.net обращался, но нафиг? все делают вид что знают правильный ответ, но ни кто не пытается проверить предлагаемый код на работоспособность, так как он не работает на самом деле.

Всего записей: 2631 | Зарегистр. 06-07-2004 | Отправлено: 19:32 12-11-2005
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Delphi6

Цитата:
Значит эта опция мне вообще не нужна? Хочу тебя обрадовать, скрипт все равно не работает

у меня работает через тот прокси, что ты привел.

Код:
<?
$RequestUrl='http://www.rbc.ru';
$this->cUrl = curl_init();  
curl_setopt($this->cUrl, CURLOPT_URL, $RequestUrl);  
curl_setopt($this->cUrl, CURLOPT_RETURNTRANSFER, 1);  
curl_setopt($this->cUrl, CURLOPT_REFERER, 'http://rapidshare.de/');  
curl_setopt($this->cUrl, CURLOPT_USERAGENT, 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0');  
curl_setopt($this->cUrl, CURLOPT_FOLLOWLOCATION, 1);  
//curl_setopt($this->cUrl, CURLOPT_HEADERFUNCTION, array(&$this,'ReadHeader'));  
//curl_setopt($this->cUrl, CURLOPT_HTTPPROXYTUNNEL, 1);  
curl_setopt($this->cUrl, CURLOPT_PROXY, '195.175.37.72:80');  
 
if ($this->CookieData !== '') {  
curl_setopt($this->cUrl, CURLOPT_COOKIE, $this->CookieData);  
}  
if ($_SERVER['REQUEST_METHOD'] === 'POST') {  
curl_setopt($this->cUrl, CURLOPT_POST, 1);  
curl_setopt($this->cUrl, CURLOPT_POSTFIELDS, $_POST);  
}  
$this->PageContent = curl_exec($this->cUrl);  
echo $this->PageContent;
curl_close($this->cUrl);  
?>


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:55 12-11-2005 | Исправлено: Cheery, 22:17 12-11-2005
Delphi6



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
Спасибо у меня тоже все заработало

Всего записей: 2631 | Зарегистр. 06-07-2004 | Отправлено: 05:56 13-11-2005
BorisBond

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А у меня не работает
В нижеследующем коде, при $Proxy="203.144.144.164:8080"
я получаю HTML следующего содержания:

Цитата:
While trying to process the request:
<PRE>
POST http://c-sky.jp/blog/tb.php/13
 HTTP/1.1
User-Agent: User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0
Host: c-sky.jp
Pragma: no-cache
Accept: */*
Referer: http://rapidshare.de/
Proxy-Connection: Keep-Alive
Content-Length: 0
Content-Type: application/x-www-form-urlencoded
 
 
</PRE>
<P>
The following error was encountered:
<UL>
<LI>
<STRONG>
Invalid Request
</STRONG>

При этом если $Proxy="" - результат нормальный, какой я и ожидал.
Сам по себе прокси тоже нормальный - программа на Delphi успешно через него работает,
прокси-чекеры одобряют.
 

Код:
function Post($RequestUrl, $Text, $Proxy)
  {
    global $config;
    $this->cUrl = curl_init();
    curl_setopt($this->cUrl, CURLOPT_URL, $RequestUrl);
    curl_setopt($this->cUrl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($this->cUrl, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($this->cUrl, CURLOPT_PROXY, $Proxy);
    curl_setopt($this->cUrl, CURLOPT_REFERER, 'http://rapidshare.de/');
    curl_setopt($this->cUrl, CURLOPT_USERAGENT, 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0');
    curl_setopt($this->cUrl, CURLOPT_POST, 1);
    curl_setopt($this->cUrl, CURLOPT_POSTFIELDS, $Text);
    $this->PageContent = curl_exec($this->cUrl);
    $this->Error=curl_errno($this->cUrl);
    curl_close($this->cUrl);
    return $this->PageContent;
  }
 

Всего записей: 4 | Зарегистр. 29-12-2005 | Отправлено: 12:53 02-11-2006 | Исправлено: BorisBond, 16:08 02-11-2006
Aliance spb



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
У меня не работает ни одних из этих кодов и не один из моих. В чем трабла?

Всего записей: 7 | Зарегистр. 17-01-2007 | Отправлено: 11:29 19-01-2007
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Aliance spb

Цитата:
У меня не работает ни одних из этих кодов и не один из моих. В чем трабла?

в том, что мы не телепаты.. мы не можем догадаться, что значит "не работает".

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 19:54 19-01-2007
Aliance spb



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Я в курсе, но а что написать? Просто чистая страница.
С Закомментированной строкой прокси все работает, с прокси - нет.
 
Вот код:
<?php
 
function getContent ($url) {
 
    $curl = curl_init($url);
 
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)");
    curl_setopt($curl, CURLOPT_TIMEOUT, 15);
    curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 30);
    curl_setopt($curl, CURLOPT_PROXY, "121.150.66.51:8080");
 
    $r = curl_exec($curl);
 
    curl_close($curl);
 
    return $r;
 
}
 
$content = getContent('http://www.2ip.ru');
echo $content;
 
?>

Всего записей: 7 | Зарегистр. 17-01-2007 | Отправлено: 01:14 28-03-2007
edogs

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Aliance spb
error_reporting
curl_error  
curl_errno
Вам помогут

Всего записей: 1778 | Зарегистр. 25-07-2004 | Отправлено: 05:22 28-03-2007
Delphi6



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Aliance spb
Попробуйте воспользоваться прокси на 80 порту, остальные могут быть заблокированы Преждевременно проверьте что данная прокся работает без проблем.

Всего записей: 2631 | Зарегистр. 06-07-2004 | Отправлено: 14:22 28-03-2007
Aliance spb



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Нет, прокси я чекаю - все в норме. Беру http elite proxy. Не работают. Пробовал и просто хттп, и сокс5 - не работало все равно. Просто пустой ответ от сервера. При чем разные сервера - шанс того, что там прокси заблокирован минимален, имхо.
Хочу решить проблему радикально - курлом цепляться к аномайзеру. Но все равно это не ответ на мой вопрос - это лишь решение задачи.

Всего записей: 7 | Зарегистр. 17-01-2007 | Отправлено: 17:48 28-03-2007
Delphi6



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Aliance spb
Тогда вот вам мой совет. Мне в свое время помогло (не один день промучился пока заработало), установите на вашем ПК джентльменский набор Денвер, и запустите ваш скрипт оттуда, если он и там не работает то значит виноваты вы (ваш код) в противном случае надо писать в сапорт и исправлять кривые руки админам, молотком .

Всего записей: 2631 | Зарегистр. 06-07-2004 | Отправлено: 23:48 28-03-2007
Aliance spb



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Я не новичок и у меня есть локальный веб сервер. Скрипт работает без использования строчки с заданием прокси, а с ней - нет. При чем тут хостер? Да и хостинг у меня не бесплатный.

Всего записей: 7 | Зарегистр. 17-01-2007 | Отправлено: 00:03 29-03-2007
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Aliance spb
блин.. ну раз работает без, а с нет, то не пробовал проксю забить в браузер и посмотреть что происходит? ответ.. с той, что выше - ничего.. абсолютно.
плиз.. одну, что работает и в браузере.. тогда и будем смотреть, почему не работает код

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 00:06 29-03-2007
Aliance spb



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Поясни, что ты имеешь ввиду: забить ее как адрес странички или же использовать ее для подключения к интернету?
На самом деле я не силен в понимании термина прокси, имею только поверхностные знания и маленький опыт работы, поэтому думаю, что ошибка именно в этом.

Всего записей: 7 | Зарегистр. 17-01-2007 | Отправлено: 00:13 29-03-2007
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Aliance spb

Цитата:
Поясни, что ты имеешь ввиду: забить ее как адрес странички или же использовать ее для подключения к интернету?  

прописать ее как прокси в браузере.. и увидишь, что через тот ip, что выше.. ничего не открывается.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 00:14 29-03-2007
Aliance spb



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Хм... то есть искать ту, что будет работать в браузере? Не пойму, почему тогда эти адреса пишутся на сайтах, которые мол обновляются часто?

Всего записей: 7 | Зарегистр. 17-01-2007 | Отправлено: 00:41 29-03-2007
Delphi6



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Aliance spb
Много раз писал и наверно придется еще долго писать. Вот к примеру возьмем прокси на моем сайте, я тоже их проверяю каждые 10 минут, но проверяю я с американского сервера. И поверьте все 90% работают из Америки. А вы сейчас где находитесь? Наверно не в штатах, а значит почему прокси которое работает для буржуев (и многие предназначены для них) должны работать для вас? Ко всему прочему анонимные прокси умирают наверно через час А элитные подавно Так что делайте вывод.
 
п.с. Еще совет, такими вещами лучше заниматься на платных проксях, времени и нервов меньше потратите, так как зачастую прокси лежится а вы продолжаете искать баг в скрипте.

Всего записей: 2631 | Зарегистр. 06-07-2004 | Отправлено: 01:22 29-03-2007 | Исправлено: Delphi6, 01:26 29-03-2007
edogs

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Delphi6

Цитата:
И поверьте все 90% работают из Америки

И 99% не работают из России Впрочем при установке скрипта на сервер это не проблема

Всего записей: 1778 | Зарегистр. 25-07-2004 | Отправлено: 05:14 29-03-2007
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2

Компьютерный форум Ru.Board » Интернет » Web-программирование » не могу заставить работать cUrl через прокси


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru