[Ищу] Proxy Checker

Тема в разделе "SEO Скрипты", создана пользователем Sergyk, 9 мар 2009.

Статус темы:
Закрыта.
  1. Sergyk

    Sergyk

    Регистр.:
    1 авг 2006
    Сообщения:
    270
    Симпатии:
    358
  2. Inviseble_Demon

    Inviseble_Demon

    Регистр.:
    11 дек 2008
    Сообщения:
    482
    Симпатии:
    350
    Бесплатных я не встречал если только писать с 0 !
    Было както парочку но они 1древнии 2 слабенькие не на пост не на куки не пробивают и т.д.

    А вобще если так просто на работоспособность проксю проверить то просто пингуй её а чтобы узнать кто она и что то считывай заголовки и там уже смотри аноним прозрачная и т.д.
     
  3. Alternator

    Alternator

    Регистр.:
    23 мар 2009
    Сообщения:
    295
    Симпатии:
    145
    вот, по материалам форума накатал под свои нужды многопоточный чекер на PHP
    сразу говорю, что чекер пока еще относитально сырой, и только обкатывается, и постоянно дополняется-видоизменяется по мере моих экспериментов с multiCURL-ом
    основная функция возлагаемая мною на него - фильтрация больших списокв уников, после чего уменьшеные списки работающих прокси, я прогоняю через другие программы
    PHP:
    <?
    define("_THREAD",    100);//больше 100 потоков этот URL не выдерживает эффективно
    define("_TRY",        1);//по поводу нескольких попыток, что-то я заглючил с multiCURL-ом, поэтому не трогаем
    define("_URL",        "http://zerg.helllabs.net/cgi-bin/textenv.pl");
    define("_TIME",        40);//+ 5-10 секунд по сравнению с тем, что нам надо

    //--------------------------------------------------------------------------------
    error_reporting(E_ALL);
    set_time_limit(0);
    ignore_user_abort(TRUE);
    ob_implicit_flush();
    //--------------------------------------------------------------------------------
    //$fpi=fopen('2check.txt','r');
    $fpi=fopen('_2check(x20).txt','r');//файл для чека
    //$fpo=fopen('checked.txt','w');
    $fpo=fopen('checked.txt','a');//сюда складываются все прокси
    $fpc=fopen('CoDeeN.txt','a');//а сюда все CoDeeN-прокси

    $count=0;
    $i=0;
    $mh=curl_multi_init();
    $ch=array();
    $proxy=array();
    while(!
    feof($fpi))
        {
        
    $proxy[$i]=trim(fgets($fpi4096));
        
    $ch[$i]=curl_init();
        
    //curl_setopt($ch[$i],CURLOPT_URL,"http://ya.ru");    
        
    curl_setopt($ch[$i],CURLOPT_URL,_URL);    
        
    curl_setopt($ch[$i],CURLOPT_RETURNTRANSFER,1);
        
    curl_setopt($ch[$i],CURLOPT_CONNECTTIMEOUT,_TIME);
        
    curl_setopt($ch[$i],CURLOPT_TIMEOUT,_TIME);
        
    curl_setopt($ch[$i],CURLOPT_PROXY,$proxy[$i]);
        
    curl_multi_add_handle($mh,$ch[$i]);
        
    $i++;
        if(
    $i==_THREAD)
            {
            for(
    $j=0;$j<_TRY;$j++)
                
    check($mh,$ch,$proxy);
            for(
    $j=0;$j<_THREAD;$j++)
                
    curl_multi_remove_handle($mh,$ch[$j]);
            
    curl_multi_close($mh);
            
    $i=0;
            
    $mh=curl_multi_init();
            
    $ch=array();
            
    $proxy=array();
            echo (++
    $count)."\n";
            }
            
        }

    function 
    check(&$mh,&$ch,&$proxy)
        {
        global 
    $fpo,$fpc;
        
    curl_multi_exec($mh,$running);

        
    $active null;
        do
            
    $mrc curl_multi_exec($mh$active);
        while (
    $mrc == CURLM_CALL_MULTI_PERFORM);
        while (
    $active && $mrc == CURLM_OK)
        if ((
    $qwe=curl_multi_select($mh,1)) != -1)
            do
                
    $mrc curl_multi_exec($mh$active);
            while (
    $mrc == CURLM_CALL_MULTI_PERFORM);
        
    /*такая конструкция почему-то грузит проц в отличии от предыдущей
        do
            {
            curl_multi_exec($mh,$running);
            }
        while($running>0);
        */
        
        
        
    for($j=0;$j<_THREAD;$j++)
            {
            
    $data=curl_multi_getcontent($ch[$j]);
            
    $temp=curl_getinfo($ch[$j]);
            if(
    $data!='')//довольно сомнительная проверка, но она выделяет  всех тех, что хотя бы ответил
                
    {
                if(
    strpos($data,"CoDeeN")!==FALSE)//CoDeen
                    
    {
                    
    fwrite($fpc,$proxy[$j]."\r\n");
                    }
                else
                    {
                    
    fwrite($fpo,$proxy[$j]."\r\n");
                    }
                }
            }
        }


    fclose($fpi);
    fclose($fpo);
    ?>
     
    latteo, FiyFiy и vovan31 нравится это.
Статус темы:
Закрыта.