Десктопный прокси-чекер

Тема в разделе "Софт", создана пользователем Alternator, 30 мар 2009.

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

    Alternator

    Регистр.:
    23 мар 2009
    Сообщения:
    295
    Симпатии:
    145
    Сразу скажу. Перерыл весь форум(и не только этот), но так и не нашел прокси-чекера под свои нужды
    Требования:
    1)возможность нормальной работы со списками уников более 100к
    это означает, что программа должна нормально импортировать список такого размера, не вылетая.
    После запуска чекинга должна не вылетая, и не подвешивая абсолютно полностью компьютер завершить чекинг всех, сохранив результат в файл.
    Если просто будет грузить проц на 100% это еще ничего(но не желательно), но если компьтер через 10 минут, вообще перестает отвечать(даже NumLock), это мне не годится
    2)возможность задания таймаута, и количества попыток
    3)Обязательная работа с HTTP-прокси.
    фильтрация по типам прокси(анон, элит) необязательна.
    работа с Socks будет приятным плюсом, но также необязательна

    Перебробовал кучу разных чекеров и их содержащих программы:
    Сharon
    Forum Proxy Leecher(Bleach)
    3 разных программы с названиями Proxy Checker
    Nmap
    Proxy Finder Enterprise
    ProxyHunter V3.1

    большинство из них не удовлетворяют первому пункту.
    Если у вас какая-то из указанных программ нормально справляется с поставленной задачей, просьба выложить инсталяху именно вашей версии, и указать вашу систему.
    моя - WinXP SP3 Rus

    Хотелось, чтобы программа была чем-то по типу
    Перейти по ссылке
    там упоминается некая профессиональная версия, которая по идее должна соответствовать всем упомянутым требованиям.
    к сожалению там не указано где ее можно вообще достать.
    это не говоря, о моем минимальном желании платить за нее
    когда запускал бесплатную версию прогу в 10 экземплярах, на списках от 10к, комп практически не грузился.
    к сожалению бесплатная ограничена по потокам и количеству перепроверок
    Если кто знает где достать эту прогу в профессионале, либо может что можно сделать конкретно с бесплатной версией, был бы благодарен
     
  2. zerg

    zerg

    Регистр.:
    5 май 2006
    Сообщения:
    262
    Симпатии:
    345
    Что мешает разбить на меньшее кол-во? и использовать любой выше перечисленный софт?
    НА сайте есть раздел контакты... можно искать неделю\месяц кряк или заплатить (недумаю что большую сумму) и работать уже сейчас.
     
  3. Alternator

    Alternator

    Регистр.:
    23 мар 2009
    Сообщения:
    295
    Симпатии:
    145
    разбить на меньшее окличество - это очень плохое решение
    пробовал. не понравилось.

    за совет глянуть в ихние контакы спасибо.
    там еще форум есть.
    покопаюсь на нем(нашел одну утилитку, но она вылетает из процесов)
    может еще что найду.
    с разрабом пытаюсь связатся

    тему просьба не закрывать, пока что
     
  4. rlneutral

    rlneutral Писатель

    Регистр.:
    9 авг 2008
    Сообщения:
    8
    Симпатии:
    3
    Обычно пользуюсь этим прокси чекером.
    http://www.helllabs.net/index.php?s=0&m=11
     
  5. Alternator

    Alternator

    Регистр.:
    23 мар 2009
    Сообщения:
    295
    Симпатии:
    145
    Lite версия слишко медленна.
    моя список проксей минимум сутки будет чекатся.
    а Pro версию, я уже пробовал.
    слишко мдолго импортирует списки(в первый раз вообще не дождался)
    к тому же по непонятной мне причине остановаился процесс не дойдя даже до трети.просто прокси дальше не чекались.
    скорее всего буду на PHP свой делать
     
  6. Alternator

    Alternator

    Регистр.:
    23 мар 2009
    Сообщения:
    295
    Симпатии:
    145
    как итог мучений написал свой чекер:
    UPD.обновление кода
    теперь лучше)
    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);
        
    /*такая конструкция почему-то грузит проц в отличии от предыдущей
        $running=null;
        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);
    ?>
     
    Vladimir Petrov и Stripe нравится это.
Статус темы:
Закрыта.