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