Есть сканер портов на перле...сканит диапазон ипов на один открытый порт...скорость откровенно крейсерная... поправьте ошибки и помогите прикрутить многопоточность
Код:
#!/usr/bin/perl
use IO::Socket;
use threads;
use threads::shared;
print "Enter Start Host: ";
my $startip=<STDIN>;
print "Enter End Host: ";
my $endip=<STDIN>;
checkrange();
sub checkrange
{
print "\n Start scaning...\n\n";
my @flist=split(/\./, $startip);
my @tlist=split(/\./, $endip);
my $fip=$flist[0]*256*256*256+$flist[1]*256*256+$flist[2]*256+$flist[3];
my $tip=$tlist[0]*256*256*256+$tlist[1]*256*256+$tlist[2]*256+$tlist[3];
for (my $i=$fip; $i<=$tip; $i++) {
my $tmp=$i;
my $d1=int($tmp / (256*256*256)); $tmp=$tmp-$d1*(256*256*256);
my $d2=int($tmp / (256*256)); $tmp=$tmp-$d2*(256*256);
my $d3=int($tmp / 256); $tmp=$tmp-$d3*256;
my $d4=$tmp;
my $ip="$d1.$d2.$d3.$d4";
sock($ip);
}
sub sock {
my $sock = new IO::Socket::INET
(
PeerAddr => $_[0],
PeerPort => '80',
PeerProto => 'tcp',
t => '5',
);
if($sock) {
print "$_[0] is Good\n";
}else{
print"$_[0] is Bad\n"
}
}
}
print "Scaning finished. Press Enter to exit.";
$exit = <STDIN>;
чоткие патсаны на кубейсеке кодят
какой то страшный код, особенно вот это повергло в шок
my $fip=$flist[0]*256*256*256+$flist[1]*256*256+$flist[2]*256+$flist[3];
=\\\ это что за пздц? я даже код боюсь разбирать
Помню слип писал небольшой сканер ипов по порту, поищи
Мб канеш с этим кто то поможет, но не я =(