CURL + PROXY

Тема в разделе "PHP", создана пользователем bikuri, 28 окт 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. bikuri

    bikuri Создатель

    Регистр.:
    18 май 2009
    Сообщения:
    36
    Симпатии:
    0
    Народ, подскажите, плз, где туплю и что недопонимаю!

    Собсно, хочу чтоб скрипт работал через прокси. Вот код:
    PHP:
    function get($url,$proxy) {
      
    $ch curl_init();
            
    curl_setopt($chCURLOPT_URL,$url);
            
    curl_setopt($chCURLOPT_RETURNTRANSFER,1);
            
    curl_setopt($chCURLOPT_USERAGENT'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.1) Gecko/2008070208');
            
    curl_setopt($chCURLOPT_TIMEOUT20);
            
    curl_setopt($chCURLOPT_PROXYTYPECURLPROXY_HTTP);
            
    //curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);//если Сокс
            
    curl_setopt($chCURLOPT_PROXY$proxy);
            
    $ss=curl_exec($ch);
            
    curl_close($ch);
            return 
    $ss;
    }
    $prox '218.75.75.133:8080';
    $a=get('http://leader.ru/secure/who.html',$prox);
    Проверяю работу по нескольким сервисам. Большинство показывают прокси, а этот, сабака, отображает реальный айпи.

    Что не так?

    Единственный вариант, когда сервис не показал мой айпи, это когда браузер работает через прокси.
    Но это не выход...

    Вобщем прошу подсказки :(
     
  2. satih

    satih

    Регистр.:
    19 сен 2008
    Сообщения:
    429
    Симпатии:
    710
    Проверь если прокси рабочий. Вот этот скрипт работает (пока прокси живой :) :(
    PHP:
    <?php
    $ch 
    curl_init('http://www.whatismyip.com/');
    curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
    curl_setopt($chCURLOPT_USERAGENT'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.1)');
    curl_setopt($chCURLOPT_TIMEOUT20);
    curl_setopt($chCURLOPT_PROXYTYPECURLPROXY_HTTP);
    //curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);//если Сокс
    curl_setopt($chCURLOPT_PROXY'187.16.242.50:3128');
    curl_setopt($chCURLOPT_VERBOSEtrue);
    $ss curl_exec($ch);
    curl_close($ch);
    echo 
    $ss;
    ?>
     
  3. bikuri

    bikuri Создатель

    Регистр.:
    18 май 2009
    Сообщения:
    36
    Симпатии:
    0
    С тунелем писали - не помогло...
     
  4. satih

    satih

    Регистр.:
    19 сен 2008
    Сообщения:
    429
    Симпатии:
    710
    Проверил твой вариант, все работает. Вывод: не рабочий прокси :)
    PHP:
    <?
    function 
    get($url,$proxy) {
        
    $ch curl_init();
            
    curl_setopt($chCURLOPT_URL,$url);
            
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
            
    curl_setopt($chCURLOPT_USERAGENT'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.1) Gecko/2008070208');
            
    curl_setopt($chCURLOPT_TIMEOUT20);
            
    curl_setopt($chCURLOPT_PROXYTYPECURLPROXY_HTTP);
            
    //curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);//если Сокс
            
    curl_setopt($chCURLOPT_PROXY$proxy);
            
    $ss=curl_exec($ch);
            
    curl_close($ch);
            return 
    $ss;
    }
    $prox '187.16.242.50:3128';
    $a=get('http://leader.ru/secure/who.html',$prox);
    echo 
    $a;
    ?>
    ----- upd
    хм, whatismyip.com показывает работу через прокси, leader.ru прокси не видит.. может дело в анонимности прокси?
     
  5. bikuri

    bikuri Создатель

    Регистр.:
    18 май 2009
    Сообщения:
    36
    Симпатии:
    0
    Если прокси не рабочий, я так понимаю, коннекта вообще не произойдет (исправте меня).
     
  6. satih

    satih

    Регистр.:
    19 сен 2008
    Сообщения:
    429
    Симпатии:
    710
    Если прокси не рабочий, коннекта не произойдет, просто может этот сервис не показывает не анонимные прокси, т.е. если он видит что юзали прокси, то показывает настоящие данные, не упоминая прокси. Тот же whatismyip.com сказал что айпи не мой, но возможно я пришел через прокси. Сейчас просто нет анонимного прокси проверить.
     
  7. psknnn

    psknnn

    Регистр.:
    9 окт 2008
    Сообщения:
    379
    Симпатии:
    227
    пробуй добавить
    PHP:
    curl_setopt($chCURLOPT_AUTOREFERER1);
    curl_setopt($chCURLOPT_FOLLOWLOCATIONTRUE);
     
  8. bikuri

    bikuri Создатель

    Регистр.:
    18 май 2009
    Сообщения:
    36
    Симпатии:
    0
    вот купил сокс4... та же хрень :(

    Добавлено через 2 минуты
    тоже не спасает

    Добавлено через 5 минут
    блин 800 сервисов говорят: "Ты класный пацан! А кто ты?"
    а этот один, сволоч говорит: "Ты мудак!"
    :eek:
     
  9. satih

    satih

    Регистр.:
    19 сен 2008
    Сообщения:
    429
    Симпатии:
    710
    Судя по header-у, leader.ru не редиректит, эти опции в этом случае не причина.

    Запрос:
    Код:
    GET /secure/who.html HTTP/1.1
    Host: leader.ru
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: en-us,en;q=0.5
    Accept-Encoding: gzip,deflate
    Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
    Keep-Alive: 300
    Connection: keep-alive
    Ответ:
    Код:
    HTTP/1.1 200 OK
    Server: nginx/0.6.31
    Date: Wed, 28 Oct 2009 12:53:22 GMT
    Content-Type: text/html; charset=windows-1251
    Transfer-Encoding: chunked
    Connection: keep-alive
    Content-Language: ru
     
  10. bikuri

    bikuri Создатель

    Регистр.:
    18 май 2009
    Сообщения:
    36
    Симпатии:
    0
    Браузер никаким боком палить не может? (может я вообще уже загнул:confused:)

    В браузере (файрфокс) явно указываю прокс... не палит...
     
Статус темы:
Закрыта.