perl统计日志文件ip及数量
2012-03-06 12:15
267 查看
1、先查看下日志的格式:
"1.162.50.56, 19.97.154.15" - - [04/Mar/2012:10:15:33 +0800] "GET /book/12688.html HTTP/1.0" 200 48407 "http://www.baidu.com/" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; GTB6.4; znwb6500; .NET CLR 1.1.4322; CIBA; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; AskTbPTV2/5.9.1.14019)" "287000"
这里的ip地址可能是1个或多个;
2、代码
6行:构建子函数,使得输出按照ip的次数进行排序;
12行:这里的?是去除*匹配符的贪婪性,即可以获取第一对""之间的ip地址;
15行:统计ip数
输出:
本文出自 “醉生季节” 博客,请务必保留此出处http://arster.blog.51cto.com/714732/797997
"1.162.50.56, 19.97.154.15" - - [04/Mar/2012:10:15:33 +0800] "GET /book/12688.html HTTP/1.0" 200 48407 "http://www.baidu.com/" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; GTB6.4; znwb6500; .NET CLR 1.1.4322; CIBA; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; AskTbPTV2/5.9.1.14019)" "287000"
这里的ip地址可能是1个或多个;
2、代码
#!/usr/bin/perl my %totalip; my $key; my $ip1 = ''; sub hashValueIp { $totalip{$b} <=> $totalip{$a}; } while(<>){ chomp; ($ip1) = /^"(.*?)"/; my @ips = split(/, /,$ip1); foreach my $index (0..$#ips){ $totalip{$ips[$index]}++; } } print "ip address count \n"; foreach $key (sort hashValueIp(keys %totalip)){ print $key." ".$totalip{$key}."\n"; }
6行:构建子函数,使得输出按照ip的次数进行排序;
12行:这里的?是去除*匹配符的贪婪性,即可以获取第一对""之间的ip地址;
15行:统计ip数
输出:
ip address count 18.44.95.134 6466 19.7.154.16 5323 19.7.154.15 4811 19.53.48.2 574 14.193.167.1 290 17.0.0.1 172 21.6.3.77 114
本文出自 “醉生季节” 博客,请务必保留此出处http://arster.blog.51cto.com/714732/797997
相关文章推荐
- python脚本实现统计日志文件中的ip访问次数代码分享
- python 脚本统计squid日志中的IP访问数和URL访问数量
- 日志文件 统计 网站PV IP
- (总结)统计Apache或Nginx访问日志里的独立IP访问数量的Shell
- perl统计http日志ip
- Spark 加强版WordCount ,统计日志中文件访问数量
- Linux通过日志文件统计IP访问次数排序
- apache 统计日志访问IP数量
- 本文以python实现了一个日志文件中ip提取与统计程序
- 用python统计日志中IP的数量
- python脚本实现统计日志文件中的ip访问次数代码分享
- 通过监听文件日志统计连接情况的perl脚本
- 统计Apache或Nginx访问日志里的独立IP访问数量的Shell
- linux命令 对日志文件的IP出现的次数进行统计 并显示次数最多的前六名
- linux命令 对日志文件的IP出现的次数进行统计 并显示次数最多的前六名
- Nginx 日志文件 访问IP统计
- Nginx 日志文件 访问IP统计
- PHP递归遍历指定目录的文件并统计文件数量的方法
- Linux学习备忘002——Linux 下统计文件夹中文件的数量
- linux--linux下统计文件夹文件数量