
一直研究SYN可行的扫描方案,想了一下,自己模拟写了一个,
但是感觉特别不理想。还得修改,mark一下。
#!/usr/bin/perl use threads; use Thread::Queue; use Thread::Semaphore; use Net::Ping; # create queue my $q=new Thread::Queue; # read for check List my @target=<>; foreach my $ip (@target){ foreach my $port (1..65535){ $q->enqueue(nex($ip,$port)); } } print $q->pending; #my $se = Thread::Semaphore->new(100); #my @check_List; #foreach my $ip (@target){ # if(${$se} <= 0){ # for my $t (threads->List(threads::joinable)){ # $t->join(); # $se->up(); # } # redo; # } # $se->down(); # threads->create(\&nex,$ip) #} #for my $t(threads->List()){ # $t->detach(); # $t->join(); #} sub nex{ ($ip,$port)=@_; chomp($ip); $scan=Net::Ping->new('syn'); $scan->port_number($port); $scan->Ping($ip); if($scan->ack){ print "ip:$ip port:$port open\n"; } $scan->close(); }总结
以上是内存溢出为你收集整理的Perl 继续研究合适的方案全部内容,希望文章能够帮你解决Perl 继续研究合适的方案所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)