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的装饰器解决Bottle框架中用户验证问题
Apr 24 Python
python3利用tcp实现文件夹远程传输
Jul 28 Python
对Python中list的倒序索引和切片实例讲解
Nov 15 Python
python 接口实现 供第三方调用的例子
Aug 13 Python
Python用input输入列表的实例代码
Feb 07 Python
python之MSE、MAE、RMSE的使用
Feb 24 Python
python序列类型种类详解
Feb 26 Python
Tensorflow tensor 数学运算和逻辑运算方式
Jun 30 Python
浅谈优化Django ORM中的性能问题
Jul 09 Python
python使用列表的最佳方案
Aug 12 Python
Python开发入门——迭代的基本使用
Sep 03 Python
Python装饰器详细介绍
Mar 25 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数组函数序列之sort() 对数组的元素值进行升序排序
2011/11/02 PHP
利用php实现禁用IE和火狐的缓存问题
2012/12/03 PHP
PHP连接局域网MYSQL数据库的简单实例
2013/08/26 PHP
php专用数组排序类ArraySortUtil用法实例
2015/04/03 PHP
PHP中empty和isset对于参数结构的判断及empty()和isset()的区别
2015/11/15 PHP
浅析PHP数据导出知识点
2018/02/17 PHP
PHP实现的猴王算法(猴子选大王)示例
2018/04/30 PHP
基于PHP的微信公众号的开发流程详解
2020/08/07 PHP
javascript拓展DOM操作 prependChild insertAfert
2010/11/17 Javascript
JavaScript对象学习小结
2015/09/02 Javascript
关于JavaScript 原型链的一点个人理解
2016/07/31 Javascript
微信小程序 两种为对象属性赋值的方式详解
2017/02/23 Javascript
vue动态组件实现选项卡切换效果
2017/03/08 Javascript
jQuery图片加载失败替换默认图片方法汇总
2017/11/29 jQuery
微信小程序wx:for和wx:for-item的用法详解
2018/04/01 Javascript
vue项目中应用ueditor自定义上传按钮功能
2018/04/27 Javascript
在vue中使用jsx语法的使用方法
2019/09/30 Javascript
JavaScript async/await原理及实例解析
2020/12/02 Javascript
jQuery实现简单轮播图效果
2020/12/27 jQuery
JavaScript Html实现移动端红包雨功能页面
2021/01/10 Javascript
Diango + uwsgi + nginx项目部署的全过程(可外网访问)
2018/04/22 Python
Django框架模板注入操作示例【变量传递到模板】
2018/12/19 Python
Python3.4学习笔记之列表、数组操作示例
2019/03/01 Python
python程序变成软件的实操方法
2019/06/24 Python
tensorflow实现残差网络方式(mnist数据集)
2020/05/26 Python
keras 自定义loss层+接受输入实例
2020/06/28 Python
详解Pymongo常用查询方法总结
2021/01/29 Python
用CSS3来实现社交分享按钮
2014/11/11 HTML / CSS
医科学校毕业生自荐信
2013/11/09 职场文书
策划创业计划书
2014/02/06 职场文书
保密承诺书
2014/03/27 职场文书
《数星星的孩子》教学反思
2014/04/11 职场文书
2014年四风问题个人对照自查剖析材料
2014/09/15 职场文书
微信小程序实现录音Record功能
2021/05/09 Javascript
MySQL系列之十 MySQL事务隔离实现并发控制
2021/07/02 MySQL
MySQL count(*)统计总数问题汇总
2022/09/23 MySQL