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 相关文章推荐
Windows系统配置python脚本开机启动的3种方法分享
Mar 10 Python
简要讲解Python编程中线程的创建与锁的使用
Feb 28 Python
Python中利用Scipy包的SIFT方法进行图片识别的实例教程
Jun 03 Python
python实现12306火车票查询器
Apr 20 Python
Python实现的插入排序,冒泡排序,快速排序,选择排序算法示例
May 04 Python
centos+nginx+uwsgi+Django实现IP+port访问服务器
Nov 15 Python
Django 实现xadmin后台菜单改为中文
Nov 15 Python
使用python和pygame制作挡板弹球游戏
Dec 03 Python
Python利用FFT进行简单滤波的实现
Feb 26 Python
详解Python IO编程
Jul 24 Python
ASP.NET Core中的配置详解
Feb 05 Python
python学习之使用Matplotlib画实时的动态折线图的示例代码
Feb 25 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 file_get_contents 函数超时的几种解决方法
2009/07/30 PHP
php 获取远程网页内容的函数
2009/09/08 PHP
php使用sql server验证连接数据库的方法
2014/12/25 PHP
php无限级评论嵌套实现代码
2018/04/18 PHP
escape、encodeURI、encodeURIComponent等方法的区别比较
2006/12/27 Javascript
js 获取子节点函数 (兼容FF与IE)
2010/04/18 Javascript
js列举css中所有图标的实现代码
2011/07/04 Javascript
文本有关的样式和jQuery求对象的高宽问题分别说明
2013/08/30 Javascript
浅析JavaScript回调函数应用
2016/05/22 Javascript
Vue2.0利用vue-resource上传文件到七牛的实例代码
2017/07/28 Javascript
分析JavaScript数组操作难点
2017/12/18 Javascript
详解webpack 入门与解析
2018/04/09 Javascript
Vue中错误图片的处理的实现代码
2019/11/07 Javascript
Vue.js获取手机系统型号、版本、浏览器类型的示例代码
2020/05/10 Javascript
在vue中使用inheritAttrs实现组件的扩展性介绍
2020/12/07 Vue.js
给你选择Python语言实现机器学习算法的三大理由
2017/11/15 Python
Python深度优先算法生成迷宫
2018/01/22 Python
python3调用R的示例代码
2018/02/23 Python
Python+selenium 获取一组元素属性值的实例
2018/06/22 Python
python pandas写入excel文件的方法示例
2019/06/25 Python
Python CVXOPT模块安装及使用解析
2019/08/01 Python
python实现井字棋小游戏
2020/03/04 Python
Python批量删除mysql中千万级大量数据的脚本分享
2020/12/03 Python
Python实现简单的2048小游戏
2021/03/01 Python
世界上最大的专业美容用品零售商:Sally Beauty
2017/07/02 全球购物
运动鞋中的劳斯莱斯:索康尼(SAUCONY)
2017/08/09 全球购物
美国在线面料商店:Online Fabric Store
2018/07/26 全球购物
27个经典Linux面试题及答案,你知道几个?
2014/03/11 面试题
财会专业大学生求职信
2014/09/26 职场文书
硕士学位论文评语
2014/12/31 职场文书
学生会个人总结范文
2015/02/15 职场文书
自主招生推荐信格式模板
2015/03/24 职场文书
幼师辞职信范文大全
2015/05/12 职场文书
2016年小学六一儿童节活动总结
2016/04/06 职场文书
python缺失值的解决方法总结
2021/06/09 Python
MYSQL 的10大经典优化案例场景实战
2021/09/14 MySQL