Python统计日志中每个IP出现次数的方法


Posted in Python onJuly 06, 2015

本文实例讲述了Python统计日志中每个IP出现次数的方法。分享给大家供大家参考。具体如下:

这脚本可用于多种日志类型,本人测试MDaemon的all日志文件大小1.23G左右,分析用时2~3分钟

代码很简单,很适合运维人员,有不足的地方请大家指出哦

#-*- coding:utf-8 -*-
import re,time
def mail_log(file_path):
  global count
  log=open(file_path,'r')
  C=r'\.'.join([r'\d{1,3}']*4)
  find=re.compile(C)
  count={}
  for i in log:
    for ip in find.findall(i):
      count[ip]=count.get(ip,1)+1
if __name__ == '__main__':
  print time.clock()
  num=0
  mail_log(r'e:\MDaemon-20110329-all.log')
  R=count.items()
  for i in R:
    if i[1]>0: #提取出现次数大于0的IP
      print i
      num+=1
  print '符合要求数量:%s耗时(%s)'%(num,time.clock())

输出结果如下:

('206.220.200.250', 8)
('66.40.52.37', 10)
('66.40.52.36', 5)
('207.115.11.41', 4)
('96.47.193.25', 9)
('96.47.193.24', 5)
('96.47.193.23', 17)
('72.32.181.92', 5)
('67.76.103.168', 10)
('64.34.161.218', 5)
('209.151.96.3', 7)
('61.135.168.0', 15)
('199.81.128.37', 2)
('199.81.128.36', 2)
('199.81.128.38', 2)
('198.45.19.170', 16)
('12.236.15.9', 4)
('66.96.142.52', 51)
('66.96.142.51', 55)
('66.96.142.50', 62)
('64.18.5.13', 1553)
('69.39.47.14', 9)
('64.18.5.11', 1557)
('64.18.5.10', 2752)
('210.72.13.102', 4)
('64.118.108.196', 4)
('66.60.192.44', 26)
('112.90.194.8', 4)
('198.49.244.245', 5)
('216.183.174.227', 5)
('195.245.230.131', 5)
('211.115.13.27', 5)
('222.247.123.217', 3)
('218.213.85.210', 2)
('201.236.205.96', 3)
('209.85.161.136', 2)
('173.165.120.188', 5)
('50.22.89.39', 7)
('219.129.20.168', 3)
('24.106.197.167', 5)
('207.190.225.69', 4)
('156.3.32.236', 5)
('209.92.157.161', 5)
('216.153.192.200', 5)
('76.77.158.130', 3)
('12.166.4.221', 5)
('66.46.182.96', 4)
('80.252.97.102', 4)
('66.46.182.94', 5)
('66.46.182.95', 4)
('124.14.5.3', 3)
('202.85.139.0', 5)
('207.173.160.17', 15)
('143.101.0.21', 5)
('65.75.75.59', 9)
('77.88.21.89', 53)
('216.128.11.30', 44)

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

Python 相关文章推荐
wxPython窗口的继承机制实例分析
Sep 28 Python
Python基类函数的重载与调用实例分析
Jan 12 Python
Python实现把json格式转换成文本或sql文件
Jul 10 Python
python简单实现获取当前时间
Aug 27 Python
Python的SimpleHTTPServer模块用处及使用方法简介
Jan 22 Python
python实现嵌套列表平铺的两种方法
Nov 08 Python
使用python的pexpect模块,实现远程免密登录的示例
Feb 14 Python
Django基础知识 URL路由系统详解
Jul 18 Python
Django中ajax发送post请求 报403错误CSRF验证失败解决方案
Aug 13 Python
python能做什么 python的含义
Oct 12 Python
妙用itchat! python实现久坐提醒功能
Nov 25 Python
使用python turtle画高达
Jan 19 Python
python统计日志ip访问数的方法
Jul 06 #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
You might like
Windows2003 下 MySQL 数据库每天自动备份
2006/12/21 PHP
zend framework文件上传功能实例代码
2013/12/25 PHP
简单说说PHP优化那些事(经验分享)
2014/11/27 PHP
Yii2汉字转拼音类的实例代码
2017/04/18 PHP
利用javascript实现一些常用软件的下载导航
2009/08/03 Javascript
jquery实现点击消失的代码
2014/03/03 Javascript
搞定immutable.js详细说明
2016/05/02 Javascript
使用HTML5+Boostrap打造简单的音乐播放器
2016/08/05 Javascript
Javascript中常用的检测方法小结
2016/10/08 Javascript
最原始的jQuery注册验证方式
2016/10/11 Javascript
js中string和number类型互转换技巧(分享)
2016/11/28 Javascript
微信小程序 底部导航栏目开发资料
2016/12/05 Javascript
Javascript实现登录记住用户名和密码功能
2017/03/22 Javascript
jQuery中clone()函数实现表单中增加和减少输入项
2017/05/13 jQuery
如何理解Vue的render函数的具体用法
2017/08/30 Javascript
vue项目前端埋点的实现
2019/03/06 Javascript
详解JQuery基础动画操作
2019/04/12 jQuery
基于vue写一个全局Message组件的实现
2019/08/15 Javascript
Python迭代器和生成器介绍
2015/03/06 Python
python selenium 弹出框处理的实现
2019/02/26 Python
python绘制漏斗图步骤详解
2019/03/04 Python
Django结合ajax进行页面实时更新的例子
2019/08/12 Python
用python中的matplotlib绘制方程图像代码
2019/11/21 Python
python定间隔取点(np.linspace)的实现
2019/11/27 Python
python为什么会环境变量设置不成功
2020/06/23 Python
Django --Xadmin 判断登录者身份实例
2020/07/03 Python
利用html5 file api读取本地文件示例(如图片、PDF等)
2018/03/07 HTML / CSS
Skyscanner澳大利亚:全球领先的旅游搜索网站
2018/03/24 全球购物
澳大利亚领先的在线葡萄酒零售商:Get Wines Direct
2018/03/27 全球购物
创业资金计划书
2014/02/06 职场文书
交警正风肃纪剖析材料
2014/10/29 职场文书
2015年世界环境日活动总结
2015/02/11 职场文书
总账会计岗位职责
2015/04/02 职场文书
七夕情人节问候语
2015/11/11 职场文书
多人股份制合作协议书
2016/03/19 职场文书
SpringBoot集成Druid连接池连接MySQL8.0.11
2021/07/02 Java/Android