Нужен прокси чекер/грабер

Discussion in 'PHP' started by LEE_ROY, 24 Jan 2008.

  1. LEE_ROY

    LEE_ROY Elder - Старейшина

    Joined:
    9 Nov 2006
    Messages:
    450
    Likes Received:
    188
    Reputations:
    26
    Ищется хороший прокси граббер и чеккер серверный ( пхп/перл ). Кто имеет, поделитесь плз :)

    Вот нарыл один, берет урлы из txt и граббит с них прокси, чекает на GET и рабочие слаживает в отедльный txt. Так вот может есть подобный или кто-то сможеш подправить чтобы проверял на POST, вместо GET. Заранее спасибо :)

    скачать - http://dump.ru/files/o/o521684942/

    PHP:
    use FileHandle;
    autoflush STDOUT 1;

    checkProxies();
    exit;


    ################################
    #This function checks proxylist
    ################################
    sub checkProxies
    {
        use 
    threads;
        use 
    threads::shared;

        
    $threadsNumber=64;
        print 
    "Checking proxies... ";
        
    share(@flags);
        
    open(ALLP,"<./allproxies.txt");

        
    #creating threads
        
    for($i=0;$i<$threadsNumber;$i++)
        {
            
    threads->create("myThread",$i);
            
    $flags[$i]="nothing";
        }
        foreach 
    $thr(threads->list)
        {
            
    $thr->detach;
        }

        
    #main loop
        #searches for unoccupied thread
        #and gives it a work
        
    $num=0;
        while(
    $proxy=<ALLP>)
        {
            
    $num++;
            print 
    "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b";
            print 
    "Checking proxies... ".$num;
            
    $current=0;
            while()
            {
                if(
    $flags[$currenteq "nothing")
                {
                    
    $flags[$current]=$proxy;
                    
    last;
                }
                if(
    $flags[$currenteq "good")
                {
                    
    $flags[$current]=$proxy;
                    
    $goodNumber++;
                    
    last;
                }
                
    $current++;
                if(
    $current==$threadsNumber-1) {$current=0;}
            }
        }

        
    #checking finished
        #now we may kill all threads
        
    $i=0;
        while(
    $i<$threadsNumber)
        {
            if(
    $flags[$ieq "nothing")
            {
                
    $flags[$i]="finish";
            }
            if(
    $flags[$ieq "good")
            {
                
    $flags[$i]="finish";
                
    $goodNumber++;
            }
            if(
    $flags[$ieq "finished")
            {
                
    $i++;
            }
        }
        
    close ALLP;
        print 
    "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b";
        print 
    "Checking proxies... finished\n";
        print 
    $goodNumber." eleet proxies found\n";

        
    sleep(1);
    }

    ########
    #Thread
    ########
    sub myThread
    {
        while()
        {
            
    sleep(1);
            if(
    $flags[$_[0]] eq "finish") {last;}
            if(
    $flags[$_[0]] eq "nothing") {next;} #wait for task
            
    if($flags[$_[0]] eq "good") {next;} #wait for task
            
    $proxy=$flags[$_[0]];
            
    $result=testProxy($proxy);
            if(
    $result==1)
            {
                
    open(ELEET,">>./eleet.txt");
                print 
    ELEET $proxy;
                
    close ELEET;
                
    $flags[$_[0]]="good";
            } else {
                
    $flags[$_[0]]="nothing";
            }
        }
        
    $flags[$_[0]]="finished";
    }


    ###########################
    #This function tests proxy
    ###########################
    sub testProxy
    {
        
    $env="http://www.ocnar.com/cgi-bin/textenv.pl";
        
    #$env="http://www.anonymitytest.com/cgi-bin/textenv.pl";
        #$env="http://64.62.217.127/cgi-bin/textenv.pl";
        #$env="http://nntime.com/textenv.pl";
        #$env="http://samair.ru/cgi/textenv.pl"
          
        
    ($adr,$port)=split(/:/,$_[0]);
        
    open(ITP,">./logs/".$adr.".txt");
        
        
    $s=getPage($env,"http://".$_[0]);
        if(
    $s eq "")
        {
            print 
    ITP "dead proxy";
            
    close(ITP);
            return 
    0;
        }
        else
        {
            print 
    ITP $s;
            
    close(ITP);
        }
        
        if(
    $s!~/REMOTE_ADDR/) {return 0}; #bad proxy
        
    if($s=~/89.179.243.148/) {return 0}; #transparent proxy
        #if($s=~/HTTP_VIA/) {return 0;} #anonymous or transparent proxy
        #if($s=~/HTTP_X_FORWARDED_FOR/) {return 0;} #anonymous or transparent proxy
        
        
    return 1#eleet proxy
    }

    #################################
    #This functon makes HTTP request
    #################################
    sub getPage
    {
        use 
    LWP::UserAgent;
        
    $ua=LWP::UserAgent->new;

        
    $ua->proxy(http=>$_[1]);
        
    $ua->timeout(5);

        
    $ua->agent("Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
        
    $req=HTTP::Request->new(GET=>$_[0]);

        
    $res=$ua->request($req);

        if(
    $res->is_success)
        {
            
    #print($res->content);
            
    return $res->content;
        }
        else
        {
            
    #print "Error!\n";
            
    return "";
        }
    }
     
    2 people like this.
  2. [-=OniX=-]

    [-=OniX=-] Elder - Старейшина

    Joined:
    30 Dec 2007
    Messages:
    52
    Likes Received:
    19
    Reputations:
    -1
    Обидно, что тема не живет:(
    От себя могу добавить вот это скрипт стоит 30 баксов при регистрации идет привязка к IP хостера, скрипт зашифрован Zend Guard :( если бы не это скрипт супер. Минусы - админ походу забросил сайт и его там почти нет.
    Если кто расшифрует буду несказанно благодарен
     
    #2 [-=OniX=-], 24 Jan 2008
    Last edited: 24 Jan 2008
    1 person likes this.
  3. biophreak

    biophreak Elder - Старейшина

    Joined:
    3 Aug 2007
    Messages:
    348
    Likes Received:
    63
    Reputations:
    15
    Попробуй поищи Sansara - я тут выкладывал...может оно то что тебе надо!
     
    1 person likes this.
  4. [-=OniX=-]

    [-=OniX=-] Elder - Старейшина

    Joined:
    30 Dec 2007
    Messages:
    52
    Likes Received:
    19
    Reputations:
    -1
    спс + но к меня почему то нет модуля Sys::HostIP :(
     
  5. biophreak

    biophreak Elder - Старейшина

    Joined:
    3 Aug 2007
    Messages:
    348
    Likes Received:
    63
    Reputations:
    15
    дык поставь :)
    Вместо него можно обойтись, имхо тупым `hostname -i`
    ЗЫЖ Если не то, то извиняюсь...не смотрел сам его...
    ЗЗЫЖ Модуль-то сам по-сути берет ИП машины, на которой работает...так пропиши вручную )
     
  6. satana8920

    satana8920 Палач Античата

    Joined:
    22 Sep 2006
    Messages:
    396
    Likes Received:
    138
    Reputations:
    6
    Sansara 0.7

    нашел я эту прогу (Sansara) но че то не пашет она у меня. залил на сервер все вроде норм ,выставил права как полагаеться но она не пашет зараза!
    кто нить напишите хоть ман чтоли какой нить как юзать эту прогу
    какую лицензию вводить даже хз
    Ниид хелп
     
    #6 satana8920, 29 Jan 2008
    Last edited: 29 Jan 2008
  7. bobob

    bobob Member

    Joined:
    2 Jun 2006
    Messages:
    111
    Likes Received:
    69
    Reputations:
    -15
    вот - http://dezend.w4ck1ng.com/

    только что попробывал дезендить индексный файл этой проги - всё ок разморозило, но тестить прогу не тестил, но думаю всё ок
     
    1 person likes this.
  8. [-=OniX=-]

    [-=OniX=-] Elder - Старейшина

    Joined:
    30 Dec 2007
    Messages:
    52
    Likes Received:
    19
    Reputations:
    -1
    + 100:)
    немного код подправить и все
     
    1 person likes this.
  9. bobob

    bobob Member

    Joined:
    2 Jun 2006
    Messages:
    111
    Likes Received:
    69
    Reputations:
    -15
    дезендел лучше себе скачай, я ссылку не помню, ТАНЗВУТ или как там забыл ник его, у него на сайте вроде, конечно там править надо, если есть знания, то можно переделать под себя, у меня например нет таких знаний(
     
    #9 bobob, 29 Jan 2008
    Last edited: 29 Jan 2008
  10. [-=OniX=-]

    [-=OniX=-] Elder - Старейшина

    Joined:
    30 Dec 2007
    Messages:
    52
    Likes Received:
    19
    Reputations:
    -1
    я его качал уже просто не мог разобраться в ini файле сидел часа 2 и не смог:( я дурак:)