挑出IIS日志里某一文件的请求次数

本文介绍了一款用于分析IIS日志中特定广告弹出次数的Perl脚本。该脚本通过筛选包含特定关键字的日志条目,并统计不同IP地址的出现频率来实现广告弹出次数的统计。

要统计广告的弹出次数,找不到这种IIS日志分析器,只好写了个脚本。

=pod
   说明
   把iis日志传到LINUX,再挑出日志里出现关键字的行,如cat ex*.log |grep divMove.js>>iis.log
   再生成excel文件,如xxx.pl iis.log>>iis.csv
=cut
 
   #!/usr/bin/perl -w
   use strict;
   my $file;
   my $eachline;
   my %hash;
   my @arr_file=@ARGV;
  foreach $file(@arr_file){
    
    open(IIS_LOG,$file)||die"err: $! \n";
    while (defined ($eachline =<IIS_LOG>)) {
        
       #正则
       #2010-05-20 00:03:15 W3SVC1 218.5.79.57 GET /divMove.js - 80 - 221.178.26.163 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1;+Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1)+) 218.5.79.57 200 0 64 0 394
        if($eachline=~/^2010-\d+-\d+\s.+ W3SVC\d*\s+218\.5\.79\.57\s+GET\s+\/divMove.js\s+-\s+80\s+-\s+(?<getip>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s+.+\d$/){
         #print "$+{getip}\n";   
            #以IP做哈希表的key,累加出现次数
          if(exists $hash{$+{getip}}){
            $hash{$+{getip}}=$hash{$+{getip}}+1
          }
          else{         
            $hash{$+{getip}}=1 
          }
          
        }
 
    }
    
  }
     my $key;
     my $value;
     while (($key, $value) = each %hash){
        print "$key,$value\n";
        }


以上脚本生成以下表格

202.100.121.461209
123.180.14.253185
222.90.15.209179
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值