NAME NetScan DESCRIPTION простой интерфейс для перебора хостов и портов... SYNOPSIS * init - инициализирует обьект. Понимает параметры - хеш с ключами: PROTO - протокол (TCP) LOCAL_HOST - IP локального компа DEVICE - устройтво с которого ходим в свет TIMEOUT - таймаут SOCKADDR - SOCK_STREAM - AF_INET - OK_REQUEST - PING_ON - Цифра, если не undef то делает `ping` PING_ON число раз. OLD_SESSION - Лог старой сессии SAVE_MODE - Записывать в лог DEBUG - Включить отладку. * destroy - уничтожает обьект созданный init. Параметры : обьект от init * scan_hosts - сканирует хосты. Параметры : 1: маска IP адресов, можно пользовать примерно такие : '192.168.1,2,3-45,67.*' 2: хеш, в котором ключь - маска портов (формат примерно как и в IP), значение - указатель на процедуру обработчик. В процедуру передается : $self - обьект от init ( $_[0] ) $sock - сок хандлер ( $_[1] ) $host - IP хоста ... $port - номер порта по умолчанию стоит обработчик который просто пишет что законектились тудато... * my_warn - выводит сообщения в STDERR * my_undef - делает undef для переменных. EXAMPLES use NetScan; use Fcntl qw(:flock); if (open(OUT, ">>http-scan.log")) { select((select(OUT), $| = 1)[0]); } else { die $!; } open (STDERR,">>error.log") || warn "$!\n"; my $self = NetScan->init({ SAVE_MODE => 'scan-80.log', LOCAL_HOST => 'x.x.x.x', OLD_SESSION => 'scan-80.log', DEVICE => 'eth0:1', PING_ON => 3, DEBUG => 2 }); if ($self) { $self->scan_hosts('192.168.1.*',{'80,8080' => \&http_handler}); $self->destroy(); } .... REVISION $Id: NetScan.txt,v 1.2 2001/10/17 15:48:34 gosha Exp $