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编写一个模仿CPU工作的程序
Apr 16 Python
Python lxml模块安装教程
Jun 02 Python
python过滤字符串中不属于指定集合中字符的类实例
Jun 30 Python
Python实现身份证号码解析
Sep 01 Python
总结python爬虫抓站的实用技巧
Aug 09 Python
pandas系列之DataFrame 行列数据筛选实例
Apr 12 Python
Python实现的求解最小公倍数算法示例
May 03 Python
python实现自主查询实时天气
Jun 22 Python
Django model反向关联名称的方法
Dec 15 Python
Python实现对adb命令封装
Mar 06 Python
浅谈在django中使用redirect重定向数据传输的问题
Mar 13 Python
matplotlib自定义鼠标光标坐标格式的实现
Jan 08 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
全国FM电台频率大全 - 19 广东省
2020/03/11 无线电
一个SQL管理员的web接口
2006/10/09 PHP
完美解决dedecms中的[html][/html]和[code][/code]问题
2007/03/20 PHP
ajax php 实现写入数据库
2009/09/02 PHP
PHP微信模板消息操作示例
2017/06/29 PHP
php如何获取Http请求
2020/04/30 PHP
jquery中对表单的基本操作代码
2010/07/29 Javascript
基于jquery的关于动态创建DOM元素的问题
2010/12/24 Javascript
JavaScript传递变量: 值传递?引用传递?
2011/02/22 Javascript
用js实现in_array的方法
2013/11/05 Javascript
JQuery的Ajax中Post方法传递中文出现乱码的解决方法
2014/10/21 Javascript
轻量级jQuery插件slideBox实现带底栏轮播(焦点图)代码
2016/03/28 Javascript
详解EasyUi控件中的Datagrid
2017/08/23 Javascript
Vue项目组件化工程开发实践方案
2018/01/09 Javascript
vue2.0 + element UI 中 el-table 数据导出Excel的方法
2018/03/02 Javascript
Vue的路由动态重定向和导航守卫实例
2018/03/17 Javascript
基于vue-video-player自定义播放器的方法
2018/03/21 Javascript
JS伪继承prototype实现方法示例
2018/06/20 Javascript
详解Webpack多环境代码打包的方法
2018/08/03 Javascript
vue根据进入的路由进行原路返回的方法
2018/09/26 Javascript
vue项目移动端实现ip输入框问题
2019/03/19 Javascript
解决vue+ element ui 表单验证有值但验证失败问题
2020/01/16 Javascript
python获取从命令行输入数字的方法
2015/04/29 Python
python实现祝福弹窗效果
2019/04/07 Python
Python3并发写文件与Python对比
2019/11/20 Python
keras 权重保存和权重载入方式
2020/05/21 Python
Python3 webservice接口测试代码详解
2020/06/23 Python
师范毕业生自我鉴定
2014/01/15 职场文书
刑事辩护授权委托书
2014/09/13 职场文书
购房协议书范本(无房产证)
2014/10/07 职场文书
安装工程师岗位职责
2015/02/13 职场文书
2015年保安个人工作总结
2015/04/02 职场文书
2015年保管员工作总结
2015/04/30 职场文书
2015年七夕情人节感言
2015/08/03 职场文书
安全生产标语口号
2015/12/26 职场文书
Flutter Navigator 实现路由传递参数
2022/04/22 Java/Android