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发送邮件示例(支持中文邮件标题)
Feb 16 Python
用Python中的字典来处理索引统计的方法
May 05 Python
33个Python爬虫项目实战(推荐)
Jul 08 Python
详解python调用cmd命令三种方法
Jul 08 Python
python基于pdfminer库提取pdf文字代码实例
Aug 15 Python
Python + Requests + Unittest接口自动化测试实例分析
Dec 12 Python
python时间日期操作方法实例小结
Feb 06 Python
python简单实现最大似然估计&amp;scipy库的使用详解
Apr 15 Python
python小程序之4名牌手洗牌发牌问题解析
May 15 Python
详解pandas.DataFrame.plot() 画图函数
Jun 14 Python
Python基于正则表达式实现计算器功能
Jul 13 Python
Python实现http接口自动化测试的示例代码
Oct 09 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中实现简单的ACL 完结篇
2011/09/07 PHP
php单例模式示例分享
2015/02/12 PHP
php实现中文字符截取防乱码方法汇总
2015/04/29 PHP
基于PHP技术开发客服工单系统
2016/01/06 PHP
PHP简单实现上一页下一页功能示例
2016/09/14 PHP
Yii2框架中使用PHPExcel导出Excel文件的示例
2017/08/09 PHP
jquery photoFrame 图片边框美化显示插件
2010/06/28 Javascript
那些年,我还在学习jquery 学习笔记
2012/03/05 Javascript
jquery重新播放css动画所遇问题解决
2013/08/21 Javascript
JS中作用域和变量提升(hoisting)的深入理解
2016/10/31 Javascript
bootstrap table分页模板和获取表中的ID方法
2017/01/10 Javascript
JavaScript中匿名函数的递归调用
2017/01/22 Javascript
详解nodejs异步I/O和事件循环
2017/06/07 NodeJs
Angular如何引入第三方库的方法详解
2017/07/13 Javascript
Vue2.0 slot分发内容与props验证的方法
2017/12/12 Javascript
jQuery+SpringMVC中的复选框选择与传值实例
2018/01/08 jQuery
解决vue处理axios post请求传参的问题
2018/03/05 Javascript
JavaScript动态加载重复绑定问题
2018/04/01 Javascript
解决Vue 项目打包后favicon无法正常显示的问题
2018/09/01 Javascript
浅谈VUE-CLI脚手架热更新太慢的原因和解决方法
2018/09/28 Javascript
微信小程序实现多行文字超出部分省略号显示功能
2019/10/23 Javascript
[57:24]LGD vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python获取本机外网ip的方法
2015/04/15 Python
Python中输出ASCII大文字、艺术字、字符字小技巧
2015/04/28 Python
python PyTorch参数初始化和Finetune
2018/02/11 Python
python内打印变量之%和f的实例
2020/02/19 Python
JPA的优势都有哪些
2013/07/04 面试题
药品促销活动方案
2014/02/14 职场文书
推广普通话标语
2014/06/27 职场文书
物业保安岗位职责
2014/07/02 职场文书
项目经理岗位职责范本
2015/04/01 职场文书
小学教师教育随笔
2015/08/14 职场文书
保险公司2016开门红口号集锦
2015/12/24 职场文书
Nginx快速入门教程
2021/03/31 Servers
python opencv通过按键采集图片源码
2021/05/20 Python
尝试使用Python爬取城市租房信息
2022/04/12 Python