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 相关文章推荐
python2.7+selenium2实现淘宝滑块自动认证功能
Feb 24 Python
python按综合、销量排序抓取100页的淘宝商品列表信息
Feb 24 Python
Python编程中NotImplementedError的使用方法
Apr 21 Python
Flask框架通过Flask_login实现用户登录功能示例
Jul 17 Python
Python利用神经网络解决非线性回归问题实例详解
Jul 19 Python
Python完成哈夫曼树编码过程及原理详解
Jul 29 Python
selenium2.0中常用的python函数汇总
Aug 05 Python
Python turtle绘画象棋棋盘
Aug 21 Python
Python函数的默认参数设计示例详解
Dec 01 Python
python3+opencv 使用灰度直方图来判断图片的亮暗操作
Jun 02 Python
使用Python提取文本中含有特定字符串的方法示例
Dec 09 Python
python入门学习关于for else的特殊特性讲解
Nov 20 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
mantis安装、配置和使用中的问题小结
2014/07/14 PHP
PHP永久登录、记住我功能实现方法和安全做法
2015/04/27 PHP
jquery+php实现导出datatables插件数据到excel的方法
2015/07/06 PHP
php 中奖概率算法实现代码
2017/01/25 PHP
总结PHP内存释放以及垃圾回收
2018/03/29 PHP
ThinkPHP5与单元测试PHPUnit使用详解
2020/02/23 PHP
top.location.href 没有权限 解决方法
2008/08/05 Javascript
csdn 博客的css样式 v3
2009/02/24 Javascript
Javascript开发之三数组对象实例介绍
2012/11/12 Javascript
Extjs 3.3切换tab隐藏相应工具栏出现空白解决
2013/04/02 Javascript
ie9 提示'console' 未定义问题的解决方法
2014/03/20 Javascript
jquery实现多行文字图片滚动效果示例代码
2014/10/10 Javascript
举例详解JavaScript中Promise的使用
2015/06/24 Javascript
jquery实现可横向和竖向展开的动态下滑菜单效果
2015/08/24 Javascript
jQuery实现淡入淡出二级下拉导航菜单的方法
2015/08/28 Javascript
浅析JS运动
2015/12/28 Javascript
AngularJS手动表单验证
2016/02/01 Javascript
用JS实现图片轮播效果代码(一)
2016/06/26 Javascript
关于React动态加载路由处理的相关问题
2019/01/07 Javascript
详解VUE单页应用骨架屏方案
2019/01/17 Javascript
微信小程序拍照和摄像功能实现方法示例
2019/02/01 Javascript
Vue数据绑定简析小结
2019/05/07 Javascript
Nuxt默认模板、默认布局和自定义错误页面的实现
2020/05/11 Javascript
[04:44]DOTA2 2017全国高校联赛视频回顾
2017/08/21 DOTA
Python内置函数bin() oct()等实现进制转换
2012/12/30 Python
用Python实现将一张图片分成9宫格的示例
2019/07/05 Python
基于Python实现签到脚本过程解析
2019/10/25 Python
详解Scrapy Redis入门实战
2020/11/18 Python
用HTML5制作一个简单的桌球游戏的教程
2015/05/12 HTML / CSS
银行职员个人的工作自我评价
2014/02/15 职场文书
农民工工资发放承诺书
2014/03/31 职场文书
公司大门门卫岗位职责
2014/06/11 职场文书
一份文言文检讨书
2014/09/13 职场文书
2019学生会干事辞职信
2019/06/27 职场文书
基于angular实现树形二级表格
2021/10/16 Javascript
MySQL中rank() over、dense_rank() over、row_number() over用法介绍
2022/03/23 MySQL