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 相关文章推荐
python通过urllib2获取带有中文参数url内容的方法
Mar 13 Python
Python字典操作简明总结
Apr 13 Python
Python实现SVN的目录周期性备份实例
Jul 17 Python
Python爬虫之xlml解析库(全面了解)
Aug 08 Python
Python numpy生成矩阵、串联矩阵代码分享
Dec 04 Python
python链接oracle数据库以及数据库的增删改查实例
Jan 30 Python
python清除函数占用的内存方法
Jun 25 Python
在matplotlib的图中设置中文标签的方法
Dec 13 Python
python实现淘宝秒杀脚本
Jun 23 Python
python使用opencv对图像mask处理的方法
Jul 05 Python
在 Python 中接管键盘中断信号的实现方法
Feb 04 Python
Python可视化学习之seaborn调色盘
Feb 24 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
Symfony2实现在controller中获取url的方法
2016/03/18 PHP
100多行PHP代码实现socks5代理服务器[2]
2016/05/05 PHP
PHP的RSA加密解密方法以及开发接口使用
2018/02/11 PHP
用XMLDOM和ADODB.Stream实现base64编码解码实现代码
2010/11/28 Javascript
javascript获取网页中指定节点的父节点、子节点的方法小结
2013/04/24 Javascript
详解JavaScript中setSeconds()方法的使用
2015/06/11 Javascript
跟我学习javascript的隐式强制转换
2015/11/16 Javascript
JavaScript中定义类的方式详解
2016/01/07 Javascript
微信小程序 教程之条件渲染
2016/10/18 Javascript
Bootstrap基本组件学习笔记之面板(14)
2016/12/08 Javascript
MUI  Scroll插件的使用详解
2017/04/13 Javascript
vue2中filter()的实现代码
2017/07/09 Javascript
react-native fetch的具体使用方法
2017/11/01 Javascript
详解如何使用PM2将Node.js的集群变得更加容易
2017/11/15 Javascript
使用socket.io制做简易WEB聊天室
2018/01/02 Javascript
记一次vue-webpack项目优化实践详解
2019/02/17 Javascript
原生js实现自定义消息提示框
2020/11/19 Javascript
Python 模块EasyGui详细介绍
2017/02/19 Python
在pycharm上mongodb配置及可视化设置方法
2018/11/30 Python
Python3实现的反转单链表算法示例
2019/03/08 Python
python爬虫 execjs安装配置及使用
2019/07/30 Python
python生成requirements.txt的两种方法
2019/09/18 Python
python进程间通信Queue工作过程详解
2019/11/01 Python
Windows上安装tensorflow  详细教程(图文详解)
2020/02/04 Python
Chain Reaction Cycles芬兰:世界上最大的在线自行车商店
2017/12/06 全球购物
上海天奕面试题笔试题
2015/04/19 面试题
shell程序中如何注释
2012/02/17 面试题
采购员岗位职责
2013/11/15 职场文书
幼儿园实习自我鉴定
2013/12/15 职场文书
高一历史教学反思
2014/01/13 职场文书
大学生未来职业生涯规划书
2014/02/15 职场文书
中学生旷课检讨书2篇
2014/10/09 职场文书
英文版辞职信
2015/02/28 职场文书
2015年小学美术工作总结
2015/05/25 职场文书
详解JavaScript中Arguments对象用途
2021/08/30 Javascript
大型强子对撞机再次重启探索“第五种自然力”
2022/04/29 数码科技