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下paramiko模块实现ssh连接登录Linux服务器
Jun 03 Python
在Django的form中使用CSS进行设计的方法
Jul 18 Python
Python使用PDFMiner解析PDF代码实例
Mar 27 Python
Python搜索引擎实现原理和方法
Nov 27 Python
python Opencv将图片转为字符画
Feb 19 Python
python实现猜数字小游戏
Mar 24 Python
Python实现数据可视化看如何监控你的爬虫状态【推荐】
Aug 10 Python
python中数组和矩阵乘法及使用总结(推荐)
May 18 Python
python中的函数递归和迭代原理解析
Nov 14 Python
Python根据URL地址下载文件并保存至对应目录的实现
Nov 15 Python
python爬虫筛选工作实例讲解
Nov 23 Python
AI:如何训练机器学习的模型
Apr 16 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
PHP 5.0对象模型深度探索之对象复制
2008/03/27 PHP
php 引用(&)详解
2009/11/20 PHP
php自定义函数转换html标签示例
2016/09/29 PHP
兼容ie、firefox的图片自动缩放的css跟js代码分享
2012/01/21 Javascript
详谈js模块化规范
2017/07/07 Javascript
angular动态删除ng-repaeat添加的dom节点的方法
2017/07/20 Javascript
AngularJS 控制器 controller的详解
2017/10/17 Javascript
利用Angular2 + Ionic3开发IOS应用实例教程
2018/01/15 Javascript
微信小程序收藏功能的实现代码
2018/06/12 Javascript
ES6基础之数组和对象的拓展实例详解
2019/08/22 Javascript
javascript使用链接跨域下载图片
2019/11/01 Javascript
jQuery实现日历效果
2020/09/11 jQuery
JS hasOwnProperty()方法检测一个属性是否是对象的自有属性的方法
2021/01/29 Javascript
python3.4下django集成使用xadmin后台的方法
2017/08/15 Python
Django查询数据库的性能优化示例代码
2017/09/24 Python
unittest+coverage单元测试代码覆盖操作实例详解
2018/04/04 Python
tensorflow1.0学习之模型的保存与恢复(Saver)
2018/04/23 Python
如何优雅地处理Django中的favicon.ico图标详解
2018/07/05 Python
python使用socket实现的传输demo示例【基于TCP协议】
2019/09/24 Python
Win系统PyQt5安装和使用教程
2019/12/25 Python
Python面向对象原理与基础语法详解
2020/01/02 Python
tensorflow 报错unitialized value的解决方法
2020/02/06 Python
Jupyter notebook 启动闪退问题的解决
2020/04/13 Python
利用python实现后端写网页(flask框架)
2021/02/28 Python
Linux操作面试题
2012/05/16 面试题
GWT都有什么特性
2016/12/02 面试题
初级Java程序员面试题
2016/03/03 面试题
毕业实习个人鉴定范文
2013/12/10 职场文书
写自荐信要注意什么
2013/12/26 职场文书
公司门卫岗位职责
2014/03/15 职场文书
保护动物倡议书
2014/04/15 职场文书
酒店管理专业自荐信
2014/05/23 职场文书
纪念一二九运动演讲稿
2014/09/16 职场文书
文明单位汇报材料
2014/12/24 职场文书
2015年小学远程教育工作总结
2015/07/28 职场文书
springboot中rabbitmq实现消息可靠性机制详解
2021/09/25 Java/Android