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 strip lstrip rstrip使用方法
Sep 06 Python
Python打造出适合自己的定制化Eclipse IDE
Mar 02 Python
Python遍历目录中的所有文件的方法
Jul 08 Python
Python利用itchat库向好友或者公众号发消息的实例
Feb 21 Python
kali中python版本的切换方法
Jul 11 Python
pytorch中的自定义数据处理详解
Jan 06 Python
python动态文本进度条的实例代码
Jan 22 Python
pycharm设置当前工作目录的操作(working directory)
Feb 14 Python
python使用pandas抽样训练数据中某个类别实例
Feb 28 Python
pycharm激活码快速激活及使用步骤
Mar 12 Python
matplotlib事件处理基础(事件绑定、事件属性)
Feb 03 Python
python 中的@运算符使用
May 26 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
深入了解php4(1)--回到未来
2006/10/09 PHP
thinkPHP框架实现多表查询的方法
2018/06/14 PHP
checkbox 复选框不能为空
2009/07/11 Javascript
Javascript下IE与Firefox下的差异兼容写法总结
2010/06/18 Javascript
jQuery结合Json提交数据到Webservice,并接收从Webservice返回的Json数据
2011/02/18 Javascript
javascript SpiderMonkey中的函数序列化如何进行
2012/12/05 Javascript
两个listbox实现选项的添加删除和搜索
2013/03/01 Javascript
常用的Javascript数据验证插件
2015/08/04 Javascript
JavaScript从数组的indexOf()深入之Object的Property机制
2016/05/11 Javascript
AngularJS自定义指令详解(有分页插件代码)
2017/06/12 Javascript
详解vue表单——小白速看
2018/04/08 Javascript
JavaScript代码调试方法实例小结
2019/01/05 Javascript
微信小程序实现滑动翻页效果(完整代码)
2019/12/06 Javascript
jQuery实现鼠标移入显示蒙版效果
2020/01/11 jQuery
基于JS实现计算24点算法代码实例解析
2020/07/23 Javascript
[05:31]DOTA2英雄梦之声_第08期_莉娜
2014/06/23 DOTA
Python模块学习 filecmp 文件比较
2012/08/27 Python
python获得一个月有多少天的方法
2015/06/04 Python
Python随机读取文件实现实例
2017/05/25 Python
Python中property函数用法实例分析
2018/06/04 Python
无法使用pip命令安装python第三方库的原因及解决方法
2018/06/12 Python
django DRF图片路径问题的解决方法
2018/09/10 Python
Python2与Python3的区别实例分析
2019/04/11 Python
详解python中的index函数用法
2019/08/06 Python
python扫描线填充算法详解
2020/02/19 Python
使用ITK-SNAP进行抠图操作并保存mask的实例
2020/07/01 Python
selenium学习教程之定位以及切换frame(iframe)
2021/01/04 Python
纯CSS3实现圆角效果(含IE兼容解决方法)
2014/05/07 HTML / CSS
CSS3中Animation属性的使用详解
2015/08/06 HTML / CSS
h5实现获取用户地理定位的实例代码
2017/07/17 HTML / CSS
HTML5播放实现rtmp流直播
2020/06/16 HTML / CSS
俄罗斯皮肤健康中心:Pharmacosmetica.ru
2020/02/22 全球购物
我有一个梦想演讲稿
2014/05/05 职场文书
导游词书写之黄山
2019/08/06 职场文书
详解Python 3.10 中的新功能和变化
2021/04/28 Python
Nginx部署vue项目和配置代理的问题解析
2021/08/04 Servers