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实现代码行数统计示例分享
Feb 10 Python
python网络编程学习笔记(五):socket的一些补充
Jun 09 Python
Python实现高效求解素数代码实例
Jun 30 Python
python dict.get()和dict['key']的区别详解
Jun 30 Python
Python用imghdr模块识别图片格式实例解析
Jan 11 Python
Python输出由1,2,3,4组成的互不相同且无重复的三位数
Feb 01 Python
pandas groupby 分组取每组的前几行记录方法
Apr 20 Python
python协程gevent案例 爬取斗鱼图片过程解析
Aug 27 Python
Python aiohttp百万并发极限测试实例分析
Oct 26 Python
Python局部变量与全局变量区别原理解析
Jul 14 Python
python 如何利用argparse解析命令行参数
Sep 11 Python
Python基础之tkinter图形化界面学习
Apr 29 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中VC6 X86和VC9 X86的区别及 Non Thread Safe的意思
2013/06/28 PHP
PHP登录环节防止sql注入的方法浅析
2014/06/30 PHP
Yii框架组件和事件行为管理详解
2016/05/20 PHP
thinkPHP基于ajax实现的菜单与分页示例
2016/07/12 PHP
PHP获取当前执行php文件名的代码
2017/03/02 PHP
laravel 自定义常量的两种方案
2019/10/14 PHP
Jquery选择子控件&quot;大于号&quot;和&quot; &quot;区别介绍及使用示例
2013/06/25 Javascript
写得不错的jquery table鼠标经过变色代码
2013/09/27 Javascript
node.js中的buffer.toJSON方法使用说明
2014/12/14 Javascript
node.js中的fs.write方法使用说明
2014/12/15 Javascript
javascript计时器详解
2015/02/28 Javascript
关于在Servelet中如何获取当前时间的操作方法
2016/06/28 Javascript
js HTML5 Canvas绘制转盘抽奖
2020/09/13 Javascript
jQGrid Table操作列中点击【操作】按钮弹出按钮层的实现代码
2016/12/05 Javascript
微信小程序登录换取token的教程
2018/05/31 Javascript
详解vue的双向绑定原理及实现
2019/05/05 Javascript
微信小程序获取用户绑定手机号方法示例
2019/07/21 Javascript
BootStrap表单验证中的非Submit类型按钮点击时触发验证的坑
2019/09/05 Javascript
p5.js实现故宫橘猫赏秋图动画
2019/10/23 Javascript
vue中使用腾讯云Im的示例
2020/10/23 Javascript
Python与shell的3种交互方式介绍
2015/04/11 Python
更改Ubuntu默认python版本的两种方法python-&gt; Anaconda
2016/12/18 Python
Python读取视频的两种方法(imageio和cv2)
2018/04/15 Python
浅谈Python编程中3个常用的数据结构和算法
2019/04/30 Python
Django rstful登陆认证并检查session是否过期代码实例
2019/08/13 Python
python使用正则表达式(Regular Expression)方法超详细
2019/12/30 Python
tensorflow 20:搭网络,导出模型,运行模型的实例
2020/05/26 Python
Python 在函数上添加包装器
2020/07/28 Python
Python Opencv实现单目标检测的示例代码
2020/09/08 Python
法国在线宠物店:zooplus.fr
2018/02/23 全球购物
餐饮业员工工作决心书
2014/03/11 职场文书
优秀教师事迹材料
2014/12/15 职场文书
我们的节日中秋节活动总结
2015/03/23 职场文书
初中开学典礼新闻稿
2015/07/17 职场文书
银行工作心得体会范文
2016/01/23 职场文书
mysql 获取相邻数据项
2022/05/11 MySQL