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实现class对象转换成json/字典的方法
Mar 11 Python
利用Python为iOS10生成图标和截屏
Sep 24 Python
解决python升级引起的pip执行错误的问题
Jun 12 Python
python根据list重命名文件夹里的所有文件实例
Oct 25 Python
Django框架封装外部函数示例
May 28 Python
python开头的coding设置方法
Aug 08 Python
python多进程重复加载的解决方式
Dec 13 Python
利用Python实现Excel的文件间的数据匹配功能
Jun 16 Python
如何使用 Flask 做一个评论系统
Nov 27 Python
opencv python 对指针仪表读数识别的两种方式
Jan 14 Python
Python实现淘宝秒杀功能的示例代码
Jan 19 Python
如何用python清洗文件中的数据
Jun 18 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
印尼林东PWN黄金曼特宁咖啡豆:怎么冲世界上最醇厚的咖啡冲煮教程
2021/03/03 冲泡冲煮
Windows下PHP的任意文件执行漏洞
2006/10/09 PHP
php 页面执行时间计算代码
2008/12/04 PHP
JavaScript实现滚动栏效果的方法
2015/04/27 PHP
浅谈PHP的数据库接口和技术
2016/12/09 PHP
Yii-自定义删除确认弹框(zyd)jquery实现代码
2013/03/04 Javascript
jquery单行文字向上滚动效果示例
2014/03/06 Javascript
JS 新增Cookie 取cookie值 删除cookie 举例详解
2014/10/10 Javascript
js实现可兼容IE、FF、Chrome、Opera及Safari的音乐播放器
2015/02/11 Javascript
jQuery多个input求和的实现方法
2015/02/12 Javascript
Vue.js组件使用开发实例教程
2016/11/01 Javascript
微信小程序实战之运维小项目
2017/01/17 Javascript
JS 实现缓存算法的示例(FIFO/LRU)
2018/03/20 Javascript
如何使用JavaScript实现栈与队列
2019/06/24 Javascript
基于aotu.js实现微信自动添加通讯录中的联系人功能
2020/05/28 Javascript
浅析AST抽象语法树及Python代码实现
2016/06/06 Python
Python实现的三层BP神经网络算法示例
2018/02/07 Python
python用插值法绘制平滑曲线
2021/02/19 Python
Python实现判断一个整数是否为回文数算法示例
2019/03/02 Python
python openpyxl使用方法详解
2019/07/18 Python
python实现录屏功能(亲测好用)
2020/03/02 Python
python实现密码强度校验
2020/03/18 Python
python如何实现读取并显示图片(不需要图形界面)
2020/07/08 Python
CSS3媒体查询(Media Queries)介绍
2013/09/12 HTML / CSS
详解CSS透明opacity和IE各版本透明度滤镜filter的最准确用法
2016/12/20 HTML / CSS
韩国爱茉莉太平洋化妆品美国站:Amore Pacific US
2016/10/28 全球购物
英国灯具和灯泡网上商店:Lights.co.uk
2018/02/02 全球购物
个人求职信范文分享
2013/12/13 职场文书
二年级语文教学反思
2014/02/02 职场文书
《蝙蝠和雷达》教学反思
2014/04/23 职场文书
一份教室追逐打闹的检讨书
2014/09/27 职场文书
家长对学校的意见和建议
2015/06/03 职场文书
小鞋子观后感
2015/06/05 职场文书
入党心得体会
2019/06/20 职场文书
MySQL之select、distinct、limit的使用
2021/11/11 MySQL
python实现双向链表原理
2022/05/25 Python