This shows you the differences between two versions of the page.
kurs:ip_stat.pl [2014/09/10 21:22] |
kurs:ip_stat.pl [2014/09/10 21:22] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | <code> | ||
+ | use strict; | ||
+ | use warnings; | ||
+ | my $file = $ARGV[0]; | ||
+ | |||
+ | open (FH, "<$file"); | ||
+ | my %ip_stat; | ||
+ | while (my $line = <FH>) { | ||
+ | #131.130.102.51 - - [08/Jul/2005:20:10:34 +0200] "GET / HTTP/1.1" 200 11660 | ||
+ | $line =~ /^(.*?) /; | ||
+ | $ip_stat{$1}++; | ||
+ | # if (exists $ip_stat{$1}) { | ||
+ | # $ip_stat{$1} = $ip_stat{$1} + 1; | ||
+ | # else { | ||
+ | # $ip_stat{$1} = 1; | ||
+ | # } | ||
+ | } | ||
+ | |||
+ | my @ip_sort = sort | ||
+ | {$ip_stat{$b} <=> $ip_stat{$a}} | ||
+ | keys %ip_stat; | ||
+ | |||
+ | my $i; | ||
+ | foreach (@ip_sort) { | ||
+ | last if $i++>15; | ||
+ | printf "%02d: %-17s: %5d\n", | ||
+ | $i, $_, $ip_stat{$_}; | ||
+ | } | ||
+ | |||
+ | #foreach my $ip (keys %ip_stat) { | ||
+ | # printf "%-17s: %s\n", | ||
+ | # $ip, $ip_stat{$ip}; | ||
+ | #} | ||
+ | </code> |