python统计日志ip访问数的方法


Posted in Python onJuly 06, 2015

本文实例讲述了python统计日志ip访问数的方法。分享给大家供大家参考。具体如下:

import re
f=open("/tmp/a.log","r")
arr={} 
lines = f.readlines()
for line in lines: 
  ipaddress=re.compile(r'^#(((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?))')
  match=ipaddress.match(line)
  if match: 
    ip = match.group(1) 
    if(arr.has_key(ip)): 
      arr[ip]+=1 
    else: 
      arr.setdefault(ip,1) 
f.close() 
for key in arr: 
  print key+"->"+str(arr[key])

日志格式为:

#111.172.249.84 - - [12/Dec/2011:05:33:36 +0800] "GET /images/i/goTop.png HTTP/1.0" 200 486 "http://wh.xxxx.com/" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)" 
#111.172.249.84 - - [12/Dec/2011:05:33:36 +0800] "GET /images/i/goTop.png HTTP/1.0" 200 486 "http://wh.xxxx.com/" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)" 
#111.172.249.85 - - [12/Dec/2011:05:33:36 +0800] "GET /images/i/goTop.png HTTP/1.0" 200 486 "http://wh.xxxx.com/" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)" 
#111.172.249.86 - - [12/Dec/2011:05:33:36 +0800] "GET /images/i/goTop.png HTTP/1.0" 200 486 "http://wh.xxxx.com/" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)"

输出结果:

111.172.249.86->1
111.172.249.84->2
111.172.249.85->1

注释:python字段的setdefault用法为获取信息,如果获取不到的时候就按照他的参数设置该值

>>> a={} 
>>> a['key']='123' 
>>> print (a) 
{'key': '123'} 
>>> print (a.setdefault('key','456'))
#显示a这个字典的'key'值的内容,因为字典有,所以不会去设置它 
123 
>>> print (a.setdefault('key1','456'))
#显示a这个字典的'key1'值的内容,因为字典没有,所以设置为456了 
456 
>>> a 
{'key1': '456', 'key': '123'}

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
python简单实现基于SSL的IRC bot实例
Jun 15 Python
PHP网页抓取之抓取百度贴吧邮箱数据代码分享
Apr 13 Python
使用Python实现博客上进行自动翻页
Aug 23 Python
python定向爬取淘宝商品价格
Feb 27 Python
Python Unittest根据不同测试环境跳过用例的方法
Dec 16 Python
用Python读取几十万行文本数据
Dec 24 Python
基于OpenCV python3实现证件照换背景的方法
Mar 22 Python
PyQt Qt Designer工具的布局管理详解
Aug 07 Python
python超时重新请求解决方案
Oct 21 Python
提升python处理速度原理及方法实例
Dec 25 Python
win10下python3.8的PIL库安装过程
Jun 08 Python
Python中22个万用公式的小结
Jul 21 Python
python检查指定文件是否存在的方法
Jul 06 #Python
python转换字符串为摩尔斯电码的方法
Jul 06 #Python
python实现文件路径和url相互转换的方法
Jul 06 #Python
详解Python中的Cookie模块使用
Jul 06 #Python
python计算文本文件行数的方法
Jul 06 #Python
python实现ping的方法
Jul 06 #Python
python删除指定类型(或非指定)的文件实例详解
Jul 06 #Python
You might like
用PHP和ACCESS写聊天室(二)
2006/10/09 PHP
下载文件的点击数回填
2006/10/09 PHP
PHP 输出简单动态WAP页面
2009/06/09 PHP
PHP 面向对象实现代码
2009/11/11 PHP
php ss7.5的数据调用 (笔记)
2010/03/08 PHP
PHP 删除一个目录及目录下的所有文件的函数代码
2010/05/26 PHP
php 根据url自动生成缩略图并处理高并发问题
2014/01/23 PHP
实例讲解yii2.0在php命令行中运行的步骤
2015/12/01 PHP
Laravel框架自定义验证过程实例分析
2019/02/01 PHP
JavaScript 页面编码与浏览器类型判断代码
2010/06/03 Javascript
jQuery在vs2008及js文件中的无智能提示的解决方法
2010/12/30 Javascript
JS生成不重复的随机数组的简单实例
2016/07/10 Javascript
js判断空对象的实例(超简单)
2016/07/26 Javascript
AngularJS  $modal弹出框实例代码
2016/08/24 Javascript
AngularJS表单验证功能分析
2017/05/26 Javascript
vue学习笔记之Vue中css动画原理简单示例
2020/02/29 Javascript
javascript中contains是否包含功能实现代码(扩展字符、数组、dom)
2020/04/07 Javascript
解决Echarts2竖直datazoom滑动后显示数据不全的问题
2020/07/20 Javascript
vue实现下拉菜单树
2020/10/22 Javascript
在react项目中使用antd的form组件,动态设置input框的值
2020/10/24 Javascript
[54:26]完美世界DOTA2联赛PWL S3 Forest vs Rebirth 第一场 12.10
2020/12/12 DOTA
[01:08:30]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant BO3 第一场 2月28日
2021/03/11 DOTA
深入Python函数编程的一些特性
2015/04/13 Python
python 获取毫秒数,计算调用时长的方法
2019/02/20 Python
Django-Scrapy生成后端json接口的方法示例
2020/10/06 Python
Html5跳转到APP指定页面的实现
2020/01/14 HTML / CSS
白宫黑市官网:White House Black Market
2016/11/17 全球购物
苏格兰在线威士忌商店:The Whisky Barrel
2019/05/07 全球购物
Sisley法国希思黎美国官方网站:享誉全球的奢华植物美容品牌
2020/06/27 全球购物
安全大检查反思材料
2014/01/31 职场文书
商场中秋节活动方案
2014/02/07 职场文书
五年级小学生评语
2014/12/26 职场文书
学习党史心得体会2016
2016/01/23 职场文书
Java数据开发辅助工具Docker与普通程序使用方法
2021/09/15 Java/Android
Apache SeaTunnel实现 非CDC数据抽取
2022/05/20 Servers
NoSQL优缺点与MongoDB数据库简介
2022/06/05 MongoDB