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实现清屏的方法
Apr 30 Python
pymongo给mongodb创建索引的简单实现方法
May 06 Python
Python随手笔记之标准类型内建函数
Dec 02 Python
Python Web框架Tornado运行和部署
Oct 19 Python
轻松掌握python设计模式之访问者模式
Nov 18 Python
Python列表删除的三种方法代码分享
Oct 31 Python
深入了解Python中pop和remove的使用方法
Jan 09 Python
使用python将大量数据导出到Excel中的小技巧分享
Jun 14 Python
Python中模块(Module)和包(Package)的区别详解
Aug 07 Python
Python协程操作之gevent(yield阻塞,greenlet),协程实现多任务(有规律的交替协作执行)用法详解
Oct 14 Python
pytorch制作自己的LMDB数据操作示例
Dec 18 Python
详解python中[-1]、[:-1]、[::-1]、[n::-1]使用方法
Apr 25 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
第五节--克隆
2006/11/16 PHP
zf框架的数据库追踪器使用示例
2014/03/13 PHP
浅谈htmlentities 、htmlspecialchars、addslashes的使用方法
2016/12/09 PHP
PHP封装的多文件上传类实例与用法详解
2017/02/07 PHP
php文件包含的几种方式总结
2019/09/19 PHP
Thinkphp5.0框架使用模型Model的获取器、修改器、软删除数据操作示例
2019/10/11 PHP
JQuery的html(data)方法与<script>脚本块的解决方法
2010/03/09 Javascript
多个jquery.datatable共存,checkbox全选异常的快速解决方法
2013/12/10 Javascript
jqueryUI里拖拽排序示例分析
2015/02/26 Javascript
jQuery右下角旋转环状菜单特效代码
2015/08/10 Javascript
Position属性之relative用法
2015/12/14 Javascript
jQuery unbind 删除绑定事件详解
2016/05/24 Javascript
基于jquery实现弹幕效果
2016/09/29 Javascript
jquery文字填写自动高度的实现方法
2016/11/07 Javascript
JS实现JSON.stringify的实例代码讲解
2017/02/07 Javascript
解决Vue2.0自带浏览器里无法打开的原因(兼容处理)
2017/07/28 Javascript
BootStrap实现文件上传并带有进度条效果
2017/09/11 Javascript
nodejs实现的简单web服务器功能示例
2018/03/15 NodeJs
jQuery仿移动端支付宝键盘的实现代码
2018/08/15 jQuery
Vue一次性简洁明了引入所有公共组件的方法
2018/11/28 Javascript
[01:16:13]DOTA2-DPC中国联赛 正赛 SAG vs Dragon BO3 第一场 2月22日
2021/03/11 DOTA
Python中处理unchecked未捕获异常实例
2015/01/17 Python
Python实现Const详解
2015/01/27 Python
python中WSGI是什么,Python应用WSGI详解
2017/11/24 Python
利用numpy实现一、二维数组的拼接简单代码示例
2017/12/15 Python
解决pycharm无法调用pip安装的包问题
2018/05/18 Python
详解pycharm自动import所需的库的操作方法
2020/11/30 Python
css3如何绘制一个圆圆的loading转圈动画
2018/01/09 HTML / CSS
Auguste The Label官网:澳大利亚一家精品女装时尚品牌
2020/06/14 全球购物
数学国培研修感言
2014/02/13 职场文书
《三亚落日》教学反思
2014/04/26 职场文书
英文版辞职信
2015/02/28 职场文书
综合素质评价自我评价
2015/03/06 职场文书
2015年乡镇工会工作总结
2015/05/19 职场文书
初中英语教学随笔
2015/08/15 职场文书
利用Java连接Hadoop进行编程
2022/06/28 Java/Android