[Nmap-scanner-general] Need a little help with example from perldoc
Brought to you by:
perldork
|
From: Dukes C. <Cla...@HC...> - 2006-11-02 18:29:15
|
Trying to create a multi host scanner but I'm getting errors, can anyone
help out here?
#!/usr/bin/perl
use strict;
=20
$| =3D 1;
use Nmap::Scanner;
=20
open (FILE, $ARGV[0]);
my $count =3D 1;
my(@host_array) =3D <FILE>; # read file into list
my $total =3D (@host_array);
print "Checking $total hosts\n";
@host_array =3D sort(@host_array); # sort the list
chomp (@host_array);
=20
if (@ARGV < 1){
usage();
}
sub usage {
print "Usage: synping.pl <hosts>\n";
print "Example:\n";
print "perl synping.pl hosts.txt\n";
exit(-1);
}
=20
foreach my $hostname (@host_array) {
my $scanner =3D new Nmap::Scanner;
$scanner->register_scan_started_event(\&scan_started);
$scanner->register_port_found_event(\&port_found);
$scanner->scan("-sS -p 22,23 -O $hostname"); # Scan for telnet or
ssh
=20
}
sub scan_started {
my $self =3D shift;
my $host =3D shift;
=20
my $hostname =3D $host->name();
my $addresses =3D join(',', map {$_->address()}
$host->addresses());
my $status =3D $host->status();
=20
print "$hostname ($addresses) is $status\n";
}
=20
sub port_found {
my $self =3D shift;
my $host =3D shift;
my $port =3D shift;
=20
my $name =3D $host->name();
my $addresses =3D join(',', map {$_->addr()} $host->addresses());
=20
print "On host $name ($addresses), found ",
$port->state()," port ",
join('/',$port->protocol(),$port->portid()),"\n";
=20
}
This returns:
Checking 2520 hosts
2693<nmap-error>
<pid=3D"2142"/>
<cmdline=3D"'/usr/bin/nmap' -v -v -v -sS -p 22,23 -O
2811-x-f-h.vac.co.y.net -oX -"/>
<perl-msg>Can't locate object method "name" via package
"Nmap::Scanner::Host" at ./synping.pl line 55.
</perl-msg>
<nmap-msg></nmap-msg>
</nmap-error>
---clueless :-)
|