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使用PDFMiner解析PDF代码实例
Mar 27 Python
Python计时相关操作详解【time,datetime】
May 26 Python
python实现Decorator模式实例代码
Feb 09 Python
django缓存配置的几种方法详解
Jul 16 Python
利用pandas读取中文数据集的方法
Jul 25 Python
Python多线程同步---文件读写控制方法
Feb 12 Python
对django后台admin下拉框进行过滤的实例
Jul 26 Python
Django配置MySQL数据库的完整步骤
Sep 07 Python
6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)
Jan 06 Python
在python中使用pymysql往mysql数据库中插入(insert)数据实例
Mar 02 Python
python获取栅格点和面值的实现
Mar 10 Python
详解PyQt5中textBrowser显示print语句输出的简单方法
Aug 07 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
第一个无线电台是由谁发明的
2021/03/01 无线电
PHP 读取文件的正确方法
2009/04/29 PHP
PHP传值到不同页面的三种常见方式及php和html之间传值问题
2015/11/19 PHP
php实现微信支付之现金红包
2018/05/30 PHP
ext for eclipse插件安装方法
2008/04/27 Javascript
文本框input聚焦失焦样式实现代码
2012/10/12 Javascript
jQuery Pagination Ajax分页插件(分页切换时无刷新与延迟)中文翻译版
2013/01/11 Javascript
js 为label标签和div标签赋值的方法
2013/08/08 Javascript
js实现点小图看大图效果的思路及示例代码
2013/10/28 Javascript
JS获取图片高度宽度的方法分享
2015/04/17 Javascript
jQuery复制表单元素附源码分享效果演示
2015/09/30 Javascript
浅谈jquery的map()和each()方法
2016/06/12 Javascript
Bootstrap弹出带合法性检查的登录框实例代码【推荐】
2016/06/23 Javascript
微信小程序 Canvas增强组件实例详解及源码分享
2017/01/04 Javascript
强大的 Angular 表单验证功能详细介绍
2017/05/23 Javascript
JavaScript之事件委托实例(附原生js和jQuery代码)
2017/07/22 jQuery
原生JS实现的简单轮播图功能【适合新手】
2018/08/17 Javascript
微信小程序下拉框组件使用方法详解
2018/12/28 Javascript
轻松学习JavaScript函数中的 Rest 参数
2019/05/30 Javascript
十条建议帮你提高Python编程效率
2016/02/16 Python
Python两个内置函数 locals 和globals(学习笔记)
2016/08/28 Python
Python实现将16进制字符串转化为ascii字符的方法分析
2017/07/21 Python
python机器学习实战之树回归详解
2017/12/20 Python
利用Python正则表达式过滤敏感词的方法
2019/01/21 Python
python仿抖音表白神器
2019/04/08 Python
html5页面结构_动力节点Java学院整理
2017/07/10 HTML / CSS
捷克玩具商店:Bambule
2019/02/23 全球购物
后勤人员自我鉴定
2013/10/20 职场文书
春节活动策划方案
2014/01/24 职场文书
CAD制图人员的自荐信
2014/02/07 职场文书
查摆问题整改措施范文
2014/10/11 职场文书
2015试用期转正工作总结
2014/12/12 职场文书
公司禁烟通知
2015/04/23 职场文书
2015年街道办事处团委工作总结
2015/10/14 职场文书
Nginx Rewrite使用场景及配置方法解析
2021/04/01 Servers
Vue中使用import进行路由懒加载的原理分析
2022/04/01 Vue.js