ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Нужен прокси чекер/грабер
  #1  
Старый 24.01.2008, 18:16
Аватар для LEE_ROY
LEE_ROY
Постоянный
Регистрация: 09.11.2006
Сообщений: 639
Провел на форуме:
1917742

Репутация: 541


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

Ищется хороший прокси граббер и чеккер серверный ( пхп/перл ). Кто имеет, поделитесь плз

Вот нарыл один, берет урлы из 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 "";
    }

 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
По Www без следов foreva Чужие Статьи 34 11.02.2008 15:54
Proxy FAQ foreva Чужие Статьи 12 04.01.2008 12:15
НУжен Хелп Хацкеров anakin Болталка 18 21.09.2006 19:21
Прокси: Как вас вычислить если вы под анонимным прокси Geveres Статьи 0 19.11.2005 17:02



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ