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 itertools模块详解
May 09 Python
深入理解Python变量与常量
Jun 02 Python
完美解决python遍历删除字典里值为空的元素报错问题
Sep 11 Python
机器学习经典算法-logistic回归代码详解
Dec 22 Python
django将数组传递给前台模板的方法
Aug 06 Python
Python3 把一个列表按指定数目分成多个列表的方式
Dec 25 Python
python发qq消息轰炸虐狗好友思路详解(完整代码)
Feb 15 Python
pycharm中导入模块错误时提示Try to run this command from the system terminal
Mar 26 Python
python DES加密与解密及hex输出和bs64格式输出的实现代码
Apr 13 Python
Python爬虫爬取有道实现翻译功能
Nov 27 Python
python实现计算图形面积
Feb 22 Python
python 网络编程要点总结
Jun 18 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字符串替换函数substr_replace()用法实例
2015/03/17 PHP
thinkPHP3.1验证码的简单实现方法
2016/04/22 PHP
php反射类ReflectionClass用法分析
2016/05/12 PHP
PHP删除数组中指定下标的元素方法
2018/02/03 PHP
Yii2结合Workerman的websocket示例详解
2018/09/10 PHP
详解PHP神奇又有用的Trait
2019/03/25 PHP
JQuery 1.3.2以上版本中出现pareseerror错误的解决方法
2011/01/11 Javascript
jquery 实现窗口的最大化不论什么情况
2013/09/03 Javascript
解决Jquery鼠标经过不停滑动的问题
2014/03/03 Javascript
jQuery中height()方法用法实例
2014/12/24 Javascript
为什么JS中eval处理JSON数据要加括号
2015/04/13 Javascript
jQuery源码分析之init的详细介绍
2017/02/13 Javascript
详解Vue整合axios的实例代码
2017/06/21 Javascript
vue-better-scroll 的使用实例代码详解
2018/12/03 Javascript
Vue 组件注册实例详解
2019/02/23 Javascript
如何从零开始手写Koa2框架
2019/03/22 Javascript
js JSON.stringify()基础详解
2019/06/19 Javascript
vue data引入本地图片的两种方式小结
2019/11/13 Javascript
js实现点击生成随机div
2020/01/16 Javascript
[02:42]决战东方!DOTA2亚洲邀请赛重启荣耀之争
2017/03/17 DOTA
跟老齐学Python之使用Python查询更新数据库
2014/11/25 Python
Python中如何优雅的合并两个字典(dict)方法示例
2017/08/09 Python
Python编程二分法实现冒泡算法+快速排序代码示例
2018/01/15 Python
Python适配器模式代码实现解析
2019/08/02 Python
英国领先的办公用品供应商:Viking
2016/08/01 全球购物
IRO美国官网:法国服装品牌
2018/03/06 全球购物
迪士尼西班牙官方网上商店:ShopDisney西班牙
2020/02/02 全球购物
c++工程师面试问题
2013/08/04 面试题
市场营销专业个人求职信范文
2013/12/14 职场文书
幼儿园教师岗位职责
2014/03/17 职场文书
个人考核材料
2014/05/15 职场文书
社区领导班子四风问题原因分析及整改措施
2014/09/28 职场文书
营业员岗位职责
2015/02/11 职场文书
一篇文章带你了解Python和Java的正则表达式对比
2021/09/15 Python
Java异常体系非正常停止和分类
2022/06/14 Java/Android
Python如何将list中的string转换为int
2022/07/15 Ruby