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 相关文章推荐
linux系统使用python获取cpu信息脚本分享
Jan 15 Python
Python深入学习之对象的属性
Aug 31 Python
解决python中遇到字典里key值为None的情况,取不出来的问题
Oct 17 Python
Python基础之文件读取的讲解
Feb 16 Python
Django url,从一个页面调到另个页面的方法
Aug 21 Python
浅谈Python3实现两个矩形的交并比(IoU)
Jan 18 Python
python+selenium+PhantomJS抓取网页动态加载内容
Feb 25 Python
python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例
Feb 27 Python
Python3 shelve对象持久存储原理详解
Mar 23 Python
Pycharm学生免费专业版安装教程的方法步骤
Sep 24 Python
详解基于python的全局与局部序列比对的实现(DNA)
Oct 07 Python
pytorch--之halfTensor的使用详解
May 24 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生成SessionID和图片校验码的思路和实现代码
2009/03/10 PHP
PHP $_FILES函数详解
2011/03/09 PHP
php截取中文字符串函数实例
2015/02/23 PHP
ppk谈JavaScript style属性
2008/10/10 Javascript
JS仿flash上传头像效果实现代码
2011/07/18 Javascript
简单实例处理url特殊符号&amp;处理(2种方法)
2013/04/02 Javascript
jquery 获取 outerHtml 包含当前节点本身的代码
2014/10/30 Javascript
js同源策略详解
2015/05/21 Javascript
jfinal与bootstrap的登录跳转实战演习
2015/09/22 Javascript
js实现跨域访问的三种方法
2015/12/09 Javascript
浏览器复制插件zeroclipboard使用指南
2016/03/26 Javascript
jQuery中借助deferred来请求及判断AJAX加载的实例讲解
2016/05/24 Javascript
JS判断是否为JSON对象及是否存在某字段的方法(推荐)
2016/11/29 Javascript
js判断iframe中元素是否存在的实现代码
2016/12/24 Javascript
Vuex之理解Mutations的用法实例
2017/04/19 Javascript
Angular.js组件之input mask对input输入进行格式化详解
2017/07/10 Javascript
微信小程序上传文件到阿里OSS教程
2019/05/20 Javascript
JavaScript修改注册表实例代码
2020/01/05 Javascript
JavaScript中while循环的基础使用教程
2020/08/11 Javascript
vue 手机物理监听键+退出提示代码
2020/09/09 Javascript
[06:16]第十四期-国士无双绝地翻盘之撼地神牛
2014/06/24 DOTA
对python中两种列表元素去重函数性能的比较方法
2018/06/29 Python
Python 十六进制整数与ASCii编码字符串相互转换方法
2018/07/09 Python
Python爬虫框架scrapy实现的文件下载功能示例
2018/08/04 Python
python单例模式获取IP代理的方法详解
2018/09/13 Python
Python第三方库h5py_读取mat文件并显示值的方法
2019/02/08 Python
将Python字符串生成PDF的实例代码详解
2019/05/17 Python
python实现五子棋人机对战游戏
2020/03/25 Python
python时间time模块处理大全
2020/10/25 Python
Rakuten Kobo台湾:电子书、eReaders和Reading应用程式
2017/11/24 全球购物
网络工程与软件技术毕业生自荐信
2013/09/24 职场文书
校园开放日新闻稿
2015/07/17 职场文书
2015年机关作风和效能建设工作总结
2015/07/23 职场文书
2019年怎样写好导游词?
2019/07/02 职场文书
你会写报告?产品体验报告到底该怎么写?
2019/08/14 职场文书
quickjs 封装 JavaScript 沙箱详情
2021/11/02 Javascript