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使用urlparse分析网址中域名的方法
Apr 15 Python
Python下的常用下载安装工具pip的安装方法
Nov 13 Python
python直接访问私有属性的简单方法
Jul 25 Python
json跨域调用python的方法详解
Jan 11 Python
python实现简易通讯录修改版
Mar 13 Python
python实现抖音视频批量下载
Jun 20 Python
详解Django的CSRF认证实现
Oct 09 Python
python微元法计算函数曲线长度的方法
Nov 08 Python
Python GUI编程学习笔记之tkinter事件绑定操作详解
Mar 30 Python
如何将PySpark导入Python的放实现(2种)
Apr 26 Python
pytorch实现查看当前学习率
Jun 24 Python
python-图片流传输的思路及示例(url转换二维码)
Dec 21 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去除字符串中空字符的常用方法小结
2015/03/17 PHP
PHP使用flock实现文件加锁的方法
2015/07/01 PHP
laravel5实现微信第三方登录功能
2018/12/06 PHP
PHP使用JpGraph绘制折线图操作示例【附源码下载】
2019/10/18 PHP
PHP中通过getopt解析GNU C风格命令行选项
2019/11/18 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
2020/03/24 PHP
js下用gb2312编码解码实现方法
2009/12/31 Javascript
JS声明变量背后的编译原理剖析
2012/12/28 Javascript
javascript中的事件代理初探
2014/03/08 Javascript
js简单抽奖代码
2015/01/16 Javascript
javascript内置对象操作详解
2015/02/04 Javascript
jquery+php随机生成红包金额数量代码分享
2015/08/27 Javascript
JavaScipt中栈的实现方法
2016/02/17 Javascript
NodeJS与HTML5相结合实现拖拽多个文件上传到服务器的实现方法
2016/07/26 NodeJs
理解nodejs的stream和pipe机制的原理和实现
2017/08/12 NodeJs
改变vue请求过来的数据中的某一项值的方法(详解)
2018/03/08 Javascript
vue2.0路由切换后页面滚动位置不变BUG的解决方法
2018/03/14 Javascript
AngularJS中ng-options实现下拉列表的数据绑定方法
2018/08/13 Javascript
jQuery实现的3D版图片轮播示例【滑动轮播】
2019/01/18 jQuery
ES6 Iterator遍历器原理,应用场景及相关常用知识拓展详解
2020/02/15 Javascript
使用 UniApp 实现小程序的微信登录功能
2020/06/09 Javascript
vue-admin-template配置快捷导航的代码(标签导航栏)
2020/09/04 Javascript
[53:52]EG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python中的类学习笔记
2014/09/23 Python
Python创建普通菜单示例【基于win32ui模块】
2018/05/09 Python
详解Python连接MySQL数据库的多种方式
2019/04/16 Python
linux下python中文乱码解决方案详解
2019/08/28 Python
Python嵌套函数,作用域与偏函数用法实例分析
2019/12/26 Python
Django Admin后台添加数据库视图过程解析
2020/04/01 Python
python字符串拼接+和join的区别详解
2020/12/03 Python
周生生珠宝香港官网:Chow Sang Sang(香港及海外配送)
2019/09/05 全球购物
德国家具折扣店:POCO
2020/02/28 全球购物
高三上学期学习自我评价
2014/04/23 职场文书
学校教研活动总结
2014/07/02 职场文书
承兑汇票延期证明
2015/06/23 职场文书
解决SpringCloud Feign传对象参数调用失败的问题
2021/06/23 Java/Android