Perl Coro初体检

蛮纠结的,本想着后天出差的时候可以用。

结果还是不行,还是用多线程吧。原生的东西应该都是比较好的。:(

 

#!/usr/bin/perl

use Coro;
#use Net::Ping;
use AnyEvent::Ping::TCP;
my @check_list;
my @target=<>;
foreach my $ip (@target){
   foreach my $port (1..65535){
      push @check_list,async{
         nex($ip,$port);
      }
   };
};

foreach (@check_list){
   $_->join;
};

sub nex{
   ($ip,$port)=@_;
   $scan=Net::Ping->new('syn',3);
   $scan->port_number($port);
   $scan->ping($ip);
   if($scan->ack){
     print "ip:$ip port:$port open\n";
   }
   $scan->close();
}

 

你可能感兴趣的:(Perl Coro初体检)