McMahon, Chris ha scritto:


Thank you Mr. Saffioti for the port-scanning code. I have been playing with
some simple network programming scripts recently and your code below is much
more elegant than mine. I'll be stealing parts of it very soon! =) -Chris




maybe u can better appreciate this code that use also multiprocessing for scan the ports on more process atm 2 no more.
if u uncomment the "elses" can look also closed port with a different color.
Hope can help u .
Cya.


Go.

#!/usr/bin/perl -w

#Written by *SAFFIOTI GOFFREDO*
#script for scannning of open socket on ports.
use IO::Socket;
use IPC::Open2;
use Term::ANSIColor;
use POSIX ":sys_wait_h";

my ($port, $sock, @servers);

my $pid = 0;
my($server, $begin, $end) = @ARGV;

&usage if (!$server);
$begin = 0 if (!$begin);
$end = 65000 if (!$end);

print "Scanning from $begin to $end\n";

my $status;
$pid = fork;

if ($pid != 0) {
#    for ($port=$begin;$port<=(($begin + $end)/2);$port++) {
   for ($port=$begin;$port<=(($end)/2);$port++) {
       &scan;;
       if ( $sock ) {
            print color 'bold blue';
            print " Connected on port $port\n";
#     print "$!";
       }# else {
           #print color 'bold blue';
           #print " $port not connected\n";
       #}
   }
   my $childpid;
#  $status = 1;


while ($status = waitpid(-1, WNOHANG)> 0) { wait; } } else {

#    for ($port=(($begin + $end)/2);$port<=$end;$port++){
    for ($port=($end/2)+1;$port<=$end;$port++){
       &scan;
       if ( $sock ) {
           print color 'bold white';
           print " Connected on port $port\n ";
       }# else {
       #    print color 'bold white';
       #    print " $port not connected\n";
       #}
   }
}


sub usage{ print "Usage: portscan hostname [start from port to port number]\n"; exit(0); }

sub scan{
   $sock = IO::Socket::INET->new(PeerAddr => $server,
                                 PeerPort => $port,
                                 Proto => 'tcp');
}



--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>




Reply via email to