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多进程Multiprocessing
Aug 29 Python
python3的输入方式及多组输入方法
Oct 17 Python
Scrapy框架爬取西刺代理网免费高匿代理的实现代码
Feb 22 Python
Pyqt5实现英文学习词典
Jun 24 Python
python 环境搭建 及python-3.4.4的下载和安装过程
Jul 20 Python
Django错误:TypeError at / 'bool' object is not callable解决
Aug 16 Python
numpy.linalg.eig() 计算矩阵特征向量方式
Nov 29 Python
有关Tensorflow梯度下降常用的优化方法分享
Feb 04 Python
浅谈Pycharm最有必要改的几个默认设置项
Feb 14 Python
python异常处理之try finally不报错的原因
May 18 Python
Keras在训练期间可视化训练误差和测试误差实例
Jun 16 Python
python脚本框架webpy模板控制结构
Nov 20 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计数器的实现代码
2013/06/08 PHP
PHP利用MySQL保存session的实现思路及示例代码
2014/09/09 PHP
PHP怎样用正则抓取页面中的网址
2016/08/09 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
2017/12/21 PHP
php使用curl伪造来源ip和refer的方法示例
2018/05/08 PHP
jquery 页面全选框实践代码
2010/04/02 Javascript
jQuery 1.9使用$.support替代$.browser的使用方法
2014/05/27 Javascript
jQuery中val()方法用法实例
2014/12/25 Javascript
45个JavaScript编程注意事项、技巧大全
2015/02/11 Javascript
输入框点击时边框变色效果的实现方法
2016/12/26 Javascript
jQuery实现页面顶部下拉广告
2016/12/30 Javascript
Vue.js组件tab实现选项卡切换
2020/03/23 Javascript
Angular客户端请求Rest服务跨域问题的解决方法
2017/09/19 Javascript
Vue全家桶实践项目总结(推荐)
2017/11/04 Javascript
详解webpack中的hash、chunkhash、contenthash区别
2018/01/05 Javascript
解决vue 格式化银行卡(信用卡)每4位一个符号隔断的问题
2018/09/14 Javascript
让webpack+vue-cil项目不再自动打开浏览器的方法
2018/09/27 Javascript
Vue2.0实现简单分页及跳转效果
2019/07/29 Javascript
javascript移动端 电子书 翻页效果实现代码
2019/09/07 Javascript
vue-router路由懒加载及实现的3种方式
2021/02/28 Vue.js
[02:28]DOTA2英雄基础教程 灰烬之灵
2013/12/19 DOTA
用Python制作在地图上模拟瘟疫扩散的Gif图
2015/03/31 Python
Python判断一个三位数是否为水仙花数的示例
2018/11/13 Python
selenium+python截图不成功的解决方法
2019/01/30 Python
python实现向微信用户发送每日一句 python实现微信聊天机器人
2019/03/27 Python
python读取csv文件指定行的2种方法详解
2020/02/13 Python
pyinstaller打包找不到文件的问题解决
2020/04/15 Python
html5中canvas学习笔记1-画板的尺寸与实际显示尺寸
2013/01/06 HTML / CSS
HTML5之SVG 2D入门6—视窗坐标系与用户坐标系及变换概述
2013/01/30 HTML / CSS
英国最大的户外商店:Go Outdoors
2019/04/17 全球购物
瑞士最大的图书贸易公司:Orell Füssli
2019/12/28 全球购物
大学生咖啡店创业计划书
2014/01/21 职场文书
建设工地安全标语
2014/06/07 职场文书
具结保证书
2015/01/17 职场文书
Python绘画好看的星空图
2022/03/17 Python
Windows server 2012 NTP时间同步的实现
2022/06/25 Servers