#!/usr/bin/perl use Data::Dumper; # 219.138.59.4 - - [01/Jan/2003:00:00:02 -0500] "GET /blank.jsp?m HTTP/1.1" 200 187 "http://www.feedroom.com/frameset.jsp?st=1041397019930&rdm=578414" "Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt)" "fr_server=feedroom010; fr_puid=010103_120001_23b1e1xf277c42b65x w7773; frC=1; JSESSIONID=agqtSXDp5Epg" while(<>){ $linecount++; next unless ($geturl,$refurl) = /"GET (\S+) \S+" \d+ \d+ "(\S+)"/; $geturl =~ s/\?\S*$//; $refurl =~ s/\?\S*$//; $reqtype = $geturl; $reqtype =~ s/^\S+\.(\w+)$/$1/; if ( $reqtype ne "jsp" ) { $counts{$geturl}++; } $types{$reqtype}++; $REFS{$geturl}{$refurl}++; } print "$linecount TOTAL HITS\n"; print "\nTYPES IN DESCENDING NUMERIC ORDER:\n"; foreach $key (sort sorttypes (keys(%types))) { print "$types{$key}\t$key\n"; } print "\nNON-JSP REQUESTS IN DESCENDING NUMERIC ORDER:\n"; foreach $geturl (sort sortcounts (keys(%counts))) { print "$counts{$geturl}\t$geturl\n"; print "\tTop Ten Referers:\n"; my $refs = $REFS{$geturl}; foreach my $refurl ((sort sortrefs (keys(%$refs)))[0..9]) # foreach my $refurl ((sort {$$refs{$b} <=> $$refs{$a}} (keys(%$refs)))[0..9]) { next unless $refurl; print "\t$$refs{$refurl}\t$refurl\n"; $refcnt++; } print "\n"; } sub sorttypes { $types{$b} <=> $types{$a}; } sub sortcounts { $counts{$b} <=> $counts{$a}; } sub sortrefs { $REFS{$geturl}{$b} <=> $REFS{$geturl}{$a}; }