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

proxy grab&check
  #1  
Старый 16.10.2007, 00:15
Аватар для satana8920
satana8920
Moderator - Level 7
Регистрация: 22.09.2006
Сообщений: 531
Провел на форуме:
3818187

Репутация: 369


Отправить сообщение для satana8920 с помощью ICQ
По умолчанию proxy grab&check

Народ помогите пожалуйста!
нужен скрипт прокси граббер и чекер вместе а то я и з за этого пхп начал учить
мне нуно кароч что б в файл мона было добавить ссылочки а скриптик выдиралл от туда их и чекал сразу а потом записывал в файл какой нить
уже неделю тилипаюсь с этим (
 
Ответить с цитированием

  #2  
Старый 16.10.2007, 01:28
Аватар для biophreak
biophreak
Постоянный
Регистрация: 03.08.2007
Сообщений: 367
Провел на форуме:
876216

Репутация: 209
По умолчанию

Хм...ты хочешь написать универсальный чтоле? для всего?
Для эффективного чека:
1. Смотри что такое ProxyJudge
2. Учись работать с SSL и соксами
3. Учись отличать Codeen\Planetlab прокси
4. Для хттп, помимо proxyjudge'a смотри за что какие HTTP заголовки отвечают

Для грабинга:
1. Учи регекспы
2. Универсальный врядли получица, для каждого сайта - свой парсинг надо
3. В пхп имхо траблы с мультитредовостью Она есть, но теряется кроссплатформенность
 
Ответить с цитированием

  #3  
Старый 16.10.2007, 04:44
Аватар для mR_LiNK[deface_0nl
mR_LiNK[deface_0nl
Участник форума
Регистрация: 12.12.2006
Сообщений: 158
Провел на форуме:
1364740

Репутация: 114
По умолчанию

Гы..
раз такими вещами занимаешься - впервую очередь разобраться с языком pHp/Perl! Готовые решения недавно видел в "полезных скриптах".

Цитата:
Сообщение от biophreak  
В пхп имхо траблы с мультитредовостью Она есть, но теряется кроссплатформенность
Это, мил человек, НЕ имхо А фаКт! Хочешь многопоточность - пиши на PerL!

Последний раз редактировалось mR_LiNK[deface_0nl; 16.10.2007 в 04:59..
 
Ответить с цитированием

  #4  
Старый 16.10.2007, 10:23
Аватар для biophreak
biophreak
Постоянный
Регистрация: 03.08.2007
Сообщений: 367
Провел на форуме:
876216

Репутация: 209
По умолчанию

Ну да...именно это я и имел в виду )
Писал давно на перле проксичекер(как Cgi скрипт).
Забросил на автоматическом определении соксов )))

Так что стоит несколько раз подумать, прежде чем что-то писать, ведь есть вполне достойные(правда так-же, многие, платные) скрипты\проги, которые написаны до тебя, и для таких как ты
 
Ответить с цитированием

  #5  
Старый 18.10.2007, 17:22
Аватар для BuH@LicH
BuH@LicH
Новичок
Регистрация: 06.02.2007
Сообщений: 13
Провел на форуме:
83591

Репутация: 40
По умолчанию

satana8920, специально для тебя proxy grab&check. Подробности в комментариях
Код:
######################################################
# За основу скрипта взята работа s7r34m : Group of Freedom Search www.gfs-team.ru,
# Отредактированная под нужды топикстартера
######################################################
use FileHandle;
use Getopt::Std;

autoflush STDOUT 1;
getopts('f:');
printInfo();
getProxies($opt_f);
checkProxies();
exit;


#############################################
#This function gets proxylists from internet
#############################################
sub getProxies
{
    $links_file = shift;
    $num = 0;

    open(PROXY_LINKS, $links_file);
    @proxy_links=<PROXY_LINKS> or die print "$! ";
    close(PROXY_LINKS);
	
    open(ALLP,">./allproxies.txt");

    
    #Get proxies 
    foreach $url(@proxy_links)
	{
		print "Getting proxies from $url ... ";
		chomp($url);
		$s=getPage($url);
		# Данное регулярное выражение подходит только для страниц, на которых прокси сервера соотеветствуют маске: ip:port,
		# Например, http://www.freeproxy.ru./download/lists/goodproxy.txt
		# Для другого случая пишешь свою регулярку.
		while($s=~/(\d*\.\d*\.\d*\.\d*)\:(\d*)/msgi) 
		{
			print ALLP $1.":".$2."\n";
			$num++;
		}
		print "done\n";
	}

    print "\n".$num." proxies found\n\n";
    close ALLP;
}



################################
#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[$current] eq "nothing")
            {
                $flags[$current]=$proxy;
                last;
            }
            if($flags[$current] eq "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[$i] eq "nothing")
        {
            $flags[$i]="finish";
        }
        if($flags[$i] eq "good")
        {
            $flags[$i]="finish";
            $goodNumber++;
        }
        if($flags[$i] eq "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://nntime.com/textenv.pl";
      #$env="http://samair.ru/cgi/textenv.pl"

      $s=getPage($env,"http://".$_[0]);
      ($adr,$port)=split(/:/,$_[0]);
      if($s!~/REMOTE_ADDR=$adr/) {return 0}; #bad or 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 function prints information about the program
####################################################
sub printInfo
{
    print "*********************************************\n";
    print "Usage:\n";
    print "$0 -f file_with_links.txt:\n";
    print "*********************************************\n\n";
}


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

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

    $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)
    {
        return $res->content;
    }
}
 
Ответить с цитированием

  #6  
Старый 18.10.2007, 17:38
Аватар для Cawabunga
Cawabunga
Постоянный
Регистрация: 16.04.2007
Сообщений: 458
Провел на форуме:
2722721

Репутация: 364
Отправить сообщение для Cawabunga с помощью ICQ
По умолчанию

Цитата:
satana8920, специально для тебя proxy grab&check. Подробности в комментариях
Специально для него мог бы хотяб комментарии перевести на Русский =)
 
Ответить с цитированием

  #7  
Старый 18.10.2007, 17:42
Аватар для satana8920
satana8920
Moderator - Level 7
Регистрация: 22.09.2006
Сообщений: 531
Провел на форуме:
3818187

Репутация: 369


Отправить сообщение для satana8920 с помощью ICQ
По умолчанию

спасибо!!! я очень благодарен!!!!
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как чекать прокси брутом Ipd ? KPOT_f!nd ICQ 28 01.05.2009 04:18
Проги для работы с прокси серверами ~!DoK_tOR!~ Анонимность 2 13.05.2007 06:03
Живые прокси xdx ICQ 111 15.04.2007 13:10
Proxy Kozak-Scv Анонимность 2 11.02.2007 17:28



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


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




ANTICHAT.XYZ