PDA

Просмотр полной версии : Скрипт сканирования подсетей


icknull
26.08.2007, 19:49
#!/usr/bin/perl

use IO::Socket;

$st_ip = @ARGV[0] || die "Usage: $0 [start_ip] [end_ip] [port]\n";
$end_ip = @ARGV[1];
$port = @ARGV[2];

for ($ip = $st_ip; $ip <= $end_ip; $ip++) {
$socket = IO::Socket::INET->new (PeerAddr => $ip,
PeerPort => $port,
Proto => 'tcp');
if ($socket) {
print "\n[$ip] Port $port is open\n";
} else {close($socket);}
close($socket);
}

Вот исходник. Почему то, если указать любой адрес в качестве первого параметра (начальный адрес), он выведет что на этой машине открыт указанный порт. В чем ошибка?

P.S. Хорошо было бы если бы кто нибудь протестил его в локалке. Спасибо!

NorB
26.08.2007, 19:54
В локалке попробовал. Он шлет пакет(или хз че=) ) на 1 ип и даше все =((

C!klodoL
26.08.2007, 20:34
ппц лажа, видимо автор этой херни не знает как выглядит ip, иначе бы он не сделал такой цыкл

genom--
26.08.2007, 20:43
эт точна