Работа скрипта через прокси

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

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

    olium Создатель

    Регистр.:
    12 авг 2008
    Сообщения:
    40
    Симпатии:
    0
    у меня есть скрипт для работы через прокси
    PHP:
    <?
    $proxy=file('proxy.txt');
    $count=count($proxy);
    for(
    $i=0;$i<$count;$i++){
    $proxy2=explode(":",$proxy[$i]);
    $f = @fsockopen("$proxy2[0]",$proxy2[1],$errno,$errstr,10);
    echo 
    $proxy2[0].":".$proxy2[1]." ";
    if(
    $f === false){echo "ERROR!!!!";} 
    @
    fputs($f"GET http://www.site.net/ HTTP/1.1\r\n");
    @
    fputs($f"Host: www.site.net\r\n");
    @
    fputs($f"Connection: close\r\n");
    @
    fputs($f"\r\n");
    $ggg=htmlspecialchars(@fgets($f100));
    echo 
    $ggg."<br>========================<br>";
    }
    ?>
    В файле proxy.txt у меня хранится большой список ip: port, так вот если это прокси с портом 80 то все нормально сервер возвращает 200, во всех остальных случаях(3124,8080) и т.д. ошибки.И еще если порт 3128 заменить на 80 то тоже сервер возвращает 200.
    ВОПРОС: Что надо сделать что бы скрипт работал через все прокси?
    Желательно сбросить рабочий пример или ссылку где об этом можно почитать!!!
     
  2. sw04

    sw04 seoplayer

    Регистр.:
    1 дек 2007
    Сообщения:
    601
    Симпатии:
    193
    попробовать использовать curl.
    пример:
    PHP:
    <?
    $RequestUrl='http://www.rbc.ru';
    $this->cUrl curl_init();  
    curl_setopt($this->cUrlCURLOPT_URL$RequestUrl);  
    curl_setopt($this->cUrlCURLOPT_RETURNTRANSFER1);  
    curl_setopt($this->cUrlCURLOPT_REFERER'http://rapidshare.de/');  
    curl_setopt($this->cUrlCURLOPT_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->cUrlCURLOPT_FOLLOWLOCATION1);  
    //curl_setopt($this->cUrl, CURLOPT_HEADERFUNCTION, array(&$this,'ReadHeader'));  
    //curl_setopt($this->cUrl, CURLOPT_HTTPPROXYTUNNEL, 1);  
    curl_setopt($this->cUrlCURLOPT_PROXY'195.175.37.72:80');  
     
    if (
    $this->CookieData !== '') {  
    curl_setopt($this->cUrlCURLOPT_COOKIE$this->CookieData);  
    }  
    if (
    $_SERVER['REQUEST_METHOD'] === 'POST') {  
    curl_setopt($this->cUrlCURLOPT_POST1);  
    curl_setopt($this->cUrlCURLOPT_POSTFIELDS$_POST);  
    }  
    $this->PageContent curl_exec($this->cUrl);  
    echo 
    $this->PageContent;
    curl_close($this->cUrl);  
    ?> 
     
  3. saen

    saen

    Регистр.:
    6 авг 2006
    Сообщения:
    756
    Симпатии:
    129
    а ты не думал что эти порты могут быть закрыты?
     
  4. olium

    olium Создатель

    Регистр.:
    12 авг 2008
    Сообщения:
    40
    Симпатии:
    0
    То есть надо пробывать разные порты, для одного ip(пока не подойдет)?
    Я например забрасываю список в allsubmitter и у меня они показываются как рабочии.Причем и через те порты что у моего скрипта не работают (3127,8080,3128 и т.д.)!!!
     
  5. olium

    olium Создатель

    Регистр.:
    12 авг 2008
    Сообщения:
    40
    Симпатии:
    0
    Использовал curl все нормально работает.Когда хочу чекать ПР через прокси подходит только 80 порт или можно использовать другие тогда как??
     
Статус темы:
Закрыта.