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的Django框架中从url中捕捉文本的方法
Jul 20 Python
Python中map,reduce,filter和sorted函数的使用方法
Aug 17 Python
Python循环语句中else的用法总结
Sep 11 Python
Python实现的选择排序算法原理与用法实例分析
Nov 22 Python
200 行python 代码实现 2048 游戏
Jan 12 Python
python解决pandas处理缺失值为空字符串的问题
Apr 08 Python
python多进程实现文件下载传输功能
Jul 28 Python
python入门:这篇文章带你直接学会python
Sep 14 Python
python爬虫基础教程:requests库(二)代码实例
Apr 09 Python
Django组件cookie与session的具体使用
Jun 05 Python
使用Tkinter制作信息提示框
Feb 18 Python
python中pyplot基础图标函数整理
Nov 10 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无限级栏目分类读取的实现代码
2014/02/19 PHP
Laravel框架在本地虚拟机快速安装的方法详解
2018/06/11 PHP
Ext javascript建立超链接,进行事件处理的实现方法
2009/03/22 Javascript
jQuery EasyUI API 中文文档 - Tabs标签页/选项卡
2011/10/01 Javascript
jquery 获取表单元素里面的值示例代码
2013/07/28 Javascript
JavaScript获取网页表单action属性的方法
2015/04/02 Javascript
js精美的幻灯片画集特效代码分享
2015/08/29 Javascript
分享一个原生的JavaScript拖动方法
2016/09/25 Javascript
NodeJs读取JSON文件格式化时的注意事项
2016/09/25 NodeJs
JavaScript 上传文件(psd,压缩包等),图片,视频的实现方法
2017/06/19 Javascript
利用JavaScript如何查询某个值是否数组内
2017/07/30 Javascript
vue中组件的过渡动画及实现代码
2018/11/21 Javascript
如何能分清npm cnpm npx nvm
2019/01/17 Javascript
微信小程序实现分享商品海报功能
2019/09/30 Javascript
js实现GIF动图分解成多帧图片上传
2019/10/24 Javascript
JavaScript 空间坐标的使用
2020/08/19 Javascript
element-ui封装一个Table模板组件的示例
2021/01/04 Javascript
[03:02]2020完美世界城市挑战赛(秋季赛)总决赛回顾
2021/03/11 DOTA
Python创建系统目录的方法
2015/03/11 Python
Python使用django搭建web开发环境
2017/06/09 Python
使用python生成目录树
2018/03/29 Python
使用python的turtle函数绘制一个滑稽表情
2020/02/28 Python
Django操作session 的方法
2020/03/09 Python
对python中return与yield的区别详解
2020/03/12 Python
Python JSON常用编解码方法代码实例
2020/09/05 Python
浅谈HTML5 Web Worker的使用
2018/01/05 HTML / CSS
HTML5图片层叠的实现示例
2020/07/07 HTML / CSS
JSF界面控制层技术
2013/06/17 面试题
骨干教师培训感言
2014/01/16 职场文书
借款协议书范本
2014/04/22 职场文书
世界文化遗产导游词
2015/02/13 职场文书
法制工作总结2015
2015/07/23 职场文书
运动会广播稿20字
2015/08/19 职场文书
选择比努力更重要?这是长期以来对“努力”的最大误解
2019/07/12 职场文书
导游词之台湾阿里山
2019/10/23 职场文书
阿里云ECS云服务器快照的概念以及如何使用
2022/04/21 Servers