'vpps-qua'=>672, 'cimplex'=>673, 'acap'=>674,
'dctp'=>675, 'vpps-via'=>676, 'vpp'=>677,
'ggf-ncp'=>678, 'mrm'=>679, 'entrust-aaas'=>680,
'entrust-aams'=>681, 'xfr'=>682, 'corba-iiop'=>683,
'corba-iiop-ssl'=>684, 'mdc-portmapper'=>685, 'hcp-wismar'=>686,
'asipregistry'=>687, 'realm-rusd'=>688, 'elcsd'=>704,
'agentx'=>705, 'borland-dsj'=>707, 'entrust-kmsh'=>709,
'entrust-ash'=>710, 'cisco-tdp'=>711, 'netviewdm1'=>729,
'netviewdm2'=>730, 'netviewdm3'=>731, 'netgw'=>741,
'netrcs'=>742, 'flexlm'=>744, 'fujitsu-dev'=>747,
'ris-cm'=>748, 'kerberos-adm'=>749, 'rfile'=>750,
'pump'=>751, 'qrh'=>752, 'rrh'=>753,
'tell'=>754, 'nlogin'=>758, 'con'=>759,
'ns'=>760, 'rxe'=>761, 'quotad'=>762,
'cycleserv'=>763, 'omserv'=>764, 'webster'=>765,
'phonebook'=>767, 'vid'=>769, 'cadlock'=>770,
'rtip'=>771, 'cycleserv2'=>772, 'submit'=>773,
'rpasswd'=>774, 'entomb'=>775, 'wpages'=>776,
'multiling-http'=>777, 'wpgs'=>780, 'concert'=>786,
'qsc'=>787, 'mdbs_daemon'=>800, 'device'=>801,
'fcp-udp'=>810, 'itm-mcell-s'=>828, 'pkix-3-ca-ra'=>829,
'rsync'=>873, 'iclcnet-locate'=>886, 'iclcnet_svinfo'=>887,
'accessbuilder'=>888, 'cddbp'=>888, 'omginitialrefs'=>900,
'xact-backup'=>911, 'ftps-data'=>989, 'ftps'=>990,
'nas'=>991, 'telnets'=>992, 'imaps'=>993,
'ircs'=>994, 'pop3s'=>995, 'vsinet'=>996,
'maitrd'=>997, 'busboy'=>998, 'garcon'=>999,
'puprouter'=>999, 'cadlock'=>1000, 'surf'=>1010
);
%connected = reverse %connected;
##sort and assign hash index array
my @ports = sort by_number keys %connected;
##look for list argument
&list if $ARGV[0] eq "list";
##attempt to connect to all ports in hash index, then display open ports
foreach $port (@ports) {
$sock = IO::Socket::INET->new("$peer:$port");
print "\nPort $port $connected{$port} open\n" if ($sock);
}
print "Done.\n";
exit;
##usage sub
sub usage {
print "
Portscanner 1.0
Usage: portscan <server>
portscan list\n\n";
exit;
}
##list sub
sub list {
foreach $port (@ports) {
print "Port $port $connected{$port}\n";
}
exit;
}
##hash index sort sub
sub by_number {
if ( $a < $b ) { -1 }
elsif ( $a > $b ) { 1 }
else { 0 }
}
=head1 NAME
Portscanner 1.0 - Reports listening ports and their associated service
=head1 Author
James Loope, cronus@pcis.net
=head1 Copyright
Do with it what you please.
=head1 DESCRIPTION
See README
=head1 README
A portscanner for those of us who haven't memorized the common ports map. It scans all common
ports between 1 and 1023 and reports open ports and their common use.
=head1 PREREQUISITES
This script requires IO::Socket
=pod OSNAMES
Linux
=3= |