蛮纠结的,本想着后天出差的时候可以用。
结果还是不行,还是用多线程吧。原生的东西应该都是比较好的。:(
#!/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(); }