免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 7134 | 回复: 14
打印 上一主题 下一主题

Perl 端口扫描的脚本(SYN) [复制链接]

论坛徽章:
3
未羊
日期:2013-11-18 15:17:06酉鸡
日期:2013-12-06 17:07:16天蝎座
日期:2014-06-11 12:37:07
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-10-13 19:41 |只看该作者 |倒序浏览
这个脚本运用了线程、信号量、线程队列、进度条等。
主要是工作项目需要,写的。有的地方是论坛的童鞋指导了下。
目前好像还有BUG,但是目前没时间改了。有兴趣的自己改改,发出来,共同学习。{:3_188:}
PS:@laputa73 这个就是之前请教你部分地方的那个扫描脚本。发出来了。。
  1. #!/usr/bin/perl
  2. use threads;
  3. use DBI;
  4. use Thread::Queue;
  5. use Thread::Semaphore;
  6. use Net::Ping;
  7. use Term::ProgressBar;



  8. # create queue
  9. my $q=new Thread::Queue;
  10. # read for check list
  11. my @target=<>;
  12. my $se_max = Thread::Semaphore->new( 100 );
  13. my $se_ping= Thread::Semaphore->new( 1000 );

  14. foreach (@target){
  15.   chomp($_);
  16.   if(${$se_ping} <=0){
  17.      for my $t(threads->list(threads::joinable)){
  18.                         $t->join();
  19.                         $se_ping->up();
  20.           }
  21.      redo;
  22.   }
  23.   $se_ping->down();
  24.   threads->create(\&alive,$_);
  25. }
  26. for my $t(threads->list()){
  27.    $t->join();
  28. }

  29. sub alive{
  30.   my $ip =shift;
  31.   $ping=Net::Ping->new();
  32.   if($ping->ping($ip)){
  33.       foreach my $port(1..65535){
  34.          $q->enqueue("$ip|$port");
  35.       }
  36.   }
  37. }

  38. $all_sum=$q->pending();
  39. print $all_sum;
  40. my $progress = Term::ProgressBar->new({name  => '扫描进度',count => $all_sum});
  41. $progress->max_update_rate(1);

  42. while(1){
  43.   foreach(threads->list(threads::joinable))
  44.   {
  45.                 $_->join();
  46.   }

  47.   my $item = $q->pending();

  48.   if( $item == 0 )
  49.   {
  50.                 my $active = threads->list(threads::running);
  51.       if($active == 0)
  52.                 {
  53.            print "全部跑完\n";
  54.                           last;
  55.                 }
  56.                 else
  57.                 {
  58.                           next;
  59.                 }
  60.   }
  61.   $se_max->down;
  62.   threads->create(\&nex,$q->dequeue());
  63.   $progress->update()
  64. }
  65. foreach(threads->list()){
  66.    $_->join();
  67. }
  68. print "\n";

  69. sub nex{
  70.    local($tmp)=shift;
  71.    @list=split(/\|/,$tmp);
  72.    my $scan = Net::Ping->new("syn");
  73.         $scan->port_number($list[1]);
  74.         $scan->ping($list[0]);
  75.         if($scan->ack){
  76.                 db_insert($list[0],$list[1]);
  77.         }
  78.         $scan->close();
  79.    $se_max->up;
  80. }

  81. sub db_insert{
  82.   my $host=shift;
  83.   my $port=shift;
  84.   my $in=DBI->connect("DBI:mysql:database=port_scan;host=localhost","root","") or die "NO :$!";
  85.   my $insert=$in->do("insert into result(ip,port)values('$host',$port)");
  86.   $in->disconnect();
  87. }
复制代码

论坛徽章:
3
未羊
日期:2013-11-18 15:17:06酉鸡
日期:2013-12-06 17:07:16天蝎座
日期:2014-06-11 12:37:07
2 [报告]
发表于 2013-10-13 19:42 |只看该作者
{:3_185:} 弱弱的说句能来个精华不。。。

论坛徽章:
3
CU十二周年纪念徽章
日期:2013-10-24 15:41:34子鼠
日期:2013-12-14 14:57:19射手座
日期:2014-04-25 21:23:23
3 [报告]
发表于 2013-10-13 22:17 |只看该作者
不明觉厉啊{:3_186:}{:3_186:}

论坛徽章:
42
19周年集字徽章-周
日期:2019-10-14 14:35:31平安夜徽章
日期:2015-12-26 00:06:30数据库技术版块每日发帖之星
日期:2015-12-01 06:20:002015亚冠之首尔
日期:2015-11-04 22:25:43IT运维版块每日发帖之星
日期:2015-08-17 06:20:00寅虎
日期:2014-06-04 16:25:27狮子座
日期:2014-05-12 11:00:00辰龙
日期:2013-12-20 17:07:19射手座
日期:2013-10-24 21:01:23CU十二周年纪念徽章
日期:2013-10-24 15:41:34IT运维版块每日发帖之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之新疆
日期:2016-06-07 14:10:01
4 [报告]
发表于 2013-10-13 22:37 |只看该作者
鼓励一下,用到的东西不少.

论坛徽章:
5
丑牛
日期:2014-01-21 08:26:26卯兔
日期:2014-03-11 06:37:43天秤座
日期:2014-03-25 08:52:52寅虎
日期:2014-04-19 11:39:48午马
日期:2014-08-06 03:56:58
5 [报告]
发表于 2013-10-14 18:04 |只看该作者
精华

论坛徽章:
0
6 [报告]
发表于 2013-10-14 22:16 |只看该作者
只针对tcp?

论坛徽章:
3
未羊
日期:2013-11-18 15:17:06酉鸡
日期:2013-12-06 17:07:16天蝎座
日期:2014-06-11 12:37:07
7 [报告]
发表于 2013-10-15 16:09 |只看该作者
回复 4# laputa73


    谢谢哈。。感谢一路指点。。最近去出差,回头忙完细聊~

论坛徽章:
3
未羊
日期:2013-11-18 15:17:06酉鸡
日期:2013-12-06 17:07:16天蝎座
日期:2014-06-11 12:37:07
8 [报告]
发表于 2013-10-15 16:09 |只看该作者
回复 3# mcshell


    {:3_186:}  我是神一样的少年。。。

论坛徽章:
3
未羊
日期:2013-11-18 15:17:06酉鸡
日期:2013-12-06 17:07:16天蝎座
日期:2014-06-11 12:37:07
9 [报告]
发表于 2013-10-15 16:10 |只看该作者
回复 6# kggg


    是的。。目前只针对TCP进行扫描。

论坛徽章:
3
未羊
日期:2013-11-18 15:17:06酉鸡
日期:2013-12-06 17:07:16天蝎座
日期:2014-06-11 12:37:07
10 [报告]
发表于 2013-10-15 16:11 |只看该作者
回复 5# pitonas


    我也想。。克斯斑竹不给。。。= = #{:3_196:}
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP