python脚本实现统计日志文件中的ip访问次数代码分享


Posted in Python onAugust 06, 2014

适用的日志格式:

106.45.185.214 - - [06/Aug/2014:07:38:59 +0800] "GET / HTTP/1.0" 200 10 "-" "-"
171.104.119.22 - - [06/Aug/2014:08:55:01 +0800] "GET / HTTP/1.0" 200 10 "-" "-"
27.31.238.242 - - [06/Aug/2014:09:43:19 +0800] "GET / HTTP/1.0" 200 10 "-" "-"
218.65.202.131 - - [06/Aug/2014:10:33:59 +0800] "GET / HTTP/1.0" 200 10 "-" "-"

以上为nginx的日志,本程序只适合用于IP在开头并用空格分开的这种格式。

实例代码:

import sys
 
class Log:
 
  def __init__(self, filename,dic,count):
    self.filename = filename
    self.dic=dic
    self.count=count
 
  def parse(self):
    i=1
    f=file(self.filename)
    while True:
      line=f.readline()
      if len(line)==0:
        break
      ip=line.split(' ')
      if ip[0] in dic:
        self.dic[ip[0]]=self.dic[ip[0]]+1
      else:
        self.dic[ip[0]]=i
    soredic=sorted(self.dic.items(), key=lambda d:d[1],reverse=True)
    counts=0;
    for item in soredic:
      if counts==int(self.count):
        break
      print("IP:%s  Total Times: %s"%(item[0],item[1]))
      counts=counts+1
    f.close()
 
if __name__=="__main__":
 
  if len(sys.argv)<3:
    print('usage:log.py log.log toptimes\nexample log.py log.log 20\ncode by iswin')
    sys.exit()
  dic={}
  log=Log(sys.argv[1],dic,sys.argv[2])
  log.parse()
Python 相关文章推荐
Python获取单个程序CPU使用情况趋势图
Mar 10 Python
Python中文分词工具之结巴分词用法实例总结【经典案例】
Apr 15 Python
Python基于递归实现电话号码映射功能示例
Apr 13 Python
Python基于百度云文字识别API
Dec 13 Python
python 定时任务去检测服务器端口是否通的实例
Jan 26 Python
python用match()函数爬数据方法详解
Jul 23 Python
使用Python为中秋节绘制一块美味的月饼
Sep 11 Python
django框架单表操作之增删改实例分析
Dec 16 Python
对Tensorflow中tensorboard日志的生成与显示详解
Feb 04 Python
python3美化表格数据输出结果的实现代码
Apr 14 Python
Python-OpenCV教程之图像的位运算详解
Jun 21 Python
Python Django模型详解
Oct 05 Python
Python写的Socks5协议代理服务器
Aug 06 #Python
Python写的PHPMyAdmin暴力破解工具代码
Aug 06 #Python
Python写的Discuz7.2版faq.php注入漏洞工具
Aug 06 #Python
Python常用列表数据结构小结
Aug 06 #Python
Python生成pdf文件的方法
Aug 04 #Python
Tornado Web服务器多进程启动的2个方法
Aug 04 #Python
Python通过解析网页实现看报程序的方法
Aug 04 #Python
You might like
PHP中使用xmlreader读取xml数据示例
2014/12/29 PHP
简单概括PHP的字符串中单引号与双引号的区别
2016/05/07 PHP
PHP的中使用非缓冲模式查询数据库的方法
2017/02/05 PHP
PHP实现的字符串匹配算法示例【sunday算法】
2017/12/19 PHP
多个Laravel项目如何共用migrations详解
2018/09/25 PHP
浅析PHP7 的垃圾回收机制
2019/09/06 PHP
TP5框架实现一次选择多张图片并预览的方法示例
2020/04/04 PHP
Javascript 静态页面实现随机显示广告的办法
2010/11/17 Javascript
multiSteps 基于Jquery的多步骤滑动切换插件
2011/07/22 Javascript
JavaScript设计模式之单例模式实例
2014/09/24 Javascript
jquery动态加载js/css文件方法(自写小函数)
2014/10/11 Javascript
js在IE与firefox的差异集锦
2014/11/11 Javascript
jQuery实现感应鼠标动画效果自动伸长的输入框实例
2015/02/24 Javascript
深入解析jQuery中Deferred的deferred.promise()方法
2016/05/03 Javascript
ES6中Generator与异步操作实例分析
2017/03/31 Javascript
Vue结合SignalR实现前后端实时消息同步
2017/09/19 Javascript
AngularJs用户输入动态模板XSS攻击示例详解
2018/04/21 Javascript
微信小程序实现左右列表联动
2020/05/19 Javascript
配置eslint规范项目代码风格
2019/03/11 Javascript
微信小程序实现打开并下载服务器上面的pdf文件到手机
2019/09/20 Javascript
Vue vm.$attrs使用场景详解
2020/03/08 Javascript
NodeJS模块Buffer原理及使用方法解析
2020/11/11 NodeJs
Pyramid将models.py文件的内容分布到多个文件的方法
2013/11/27 Python
python计算程序开始到程序结束的运行时间和程序运行的CPU时间
2013/11/28 Python
OpenCV搞定腾讯滑块验证码的实现代码
2019/05/18 Python
Python3爬虫里关于代理的设置总结
2020/07/30 Python
测试时代收集的软件测试面试题
2013/09/25 面试题
给女儿的表扬信
2014/01/18 职场文书
教师党员个人总结
2015/02/10 职场文书
淮海战役观后感
2015/06/11 职场文书
婚宴父母致辞
2015/07/27 职场文书
教师学期述职自我鉴定
2019/08/16 职场文书
话题作文之成长
2019/12/09 职场文书
golang elasticsearch Client的使用详解
2021/05/05 Golang
CSS实现两列布局的N种方法
2021/08/02 HTML / CSS
使用 Koa + TS + ESLlint 搭建node服务器的过程详解
2022/05/30 NodeJs