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操作sqlite的CRUD实例分析
May 08 Python
在Django中限制已登录用户的访问的方法
Jul 23 Python
浅析Python中的getattr(),setattr(),delattr(),hasattr()
Jun 14 Python
替换python字典中的key值方法
Jul 06 Python
基于python实现学生管理系统
Oct 17 Python
python实现Flappy Bird源码
Dec 24 Python
Python3安装Pillow与PIL的方法
Apr 03 Python
pandas dataframe 中的explode函数用法详解
May 18 Python
使用K.function()调试keras操作
Jun 17 Python
django haystack实现全文检索的示例代码
Jun 24 Python
Python如何给你的程序做性能测试
Jul 29 Python
Python try except finally资源回收的实现
Jan 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
yii2中结合gridview如何使用modal弹窗实例代码详解
2016/06/12 PHP
PHP按一定比例压缩图片的方法
2018/10/12 PHP
用JS控制回车事件的代码
2011/02/20 Javascript
javascript函数定义的几种区别小结
2014/01/06 Javascript
jquery删除数组中重复元素
2016/12/05 Javascript
jQuery实现IE输入框完成placeholder标签功能的方法
2017/09/20 jQuery
基于vue 开发中出现警告问题去除方法
2018/01/25 Javascript
JS文件中加载jquery.js的实例代码
2018/05/05 jQuery
分享5个小技巧让你写出更好的 JavaScript 条件语句
2018/10/20 Javascript
浅析Proxy可以优化vue的数据监听机制问题及实现思路
2018/11/29 Javascript
JS数组方法slice()用法实例分析
2020/01/18 Javascript
JavaScript禁止右击保存图片,禁止拖拽图片的实现代码
2020/04/28 Javascript
[01:01:25]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第三局
2016/02/27 DOTA
[50:21]Liquid vs Winstrike 2018国际邀请赛小组赛BO2 第二场
2018/08/19 DOTA
Python工程师面试题 与Python基础语法相关
2016/01/14 Python
Python脚本实现虾米网签到功能
2016/04/12 Python
Python的Flask框架中使用Flask-Migrate扩展迁移数据库的教程
2016/06/14 Python
Python3如何解决字符编码问题详解
2017/04/23 Python
python爬虫爬取笔趣网小说网站过程图解
2019/11/18 Python
浅析Python中字符串的intern机制
2020/10/03 Python
CSS3实现复选框动画特效示例代码
2016/09/27 HTML / CSS
CSS3实现线性渐变用法示例代码详解
2020/08/07 HTML / CSS
html5 迷宫游戏(碰撞检测)实例一
2013/07/25 HTML / CSS
美国最大的网络男装服装品牌:Bonobos
2017/05/25 全球购物
南非最大的花卉和送礼服务:NetFlorist
2017/09/13 全球购物
bonprix荷兰网上商店:便宜的服装、鞋子和家居用品
2020/07/04 全球购物
Unix/Linux开发面试题
2016/08/16 面试题
编辑找工作求职信范文
2013/12/16 职场文书
建议书怎么写
2014/03/12 职场文书
代办出身证明书
2014/10/21 职场文书
出纳工作检讨书范文
2014/12/27 职场文书
新郎接新娘保证书
2015/05/08 职场文书
2016春季运动会开幕词
2016/03/04 职场文书
导游词之桂林
2019/08/20 职场文书
创业计划书之餐饮
2019/09/02 职场文书
Nginx反向代理学习实例教程
2021/10/24 Servers