python统计日志ip访问数的方法

本文实例讲述了python统计日志ip访问数的方法。分享给大家供大家参考。具体如下:

import re
f=open("/tmp/a.log","r")
arr={}
lines = f.readlines()
for line in lines:
  ipaddress=re.compile(r'^#(((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?))')
  match=ipaddress.match(line)
  if match:
    ip = match.group(1)
    if(arr.has_key(ip)):
      arr[ip]+=1
    else:
      arr.setdefault(ip,1)
f.close()
for key in arr:
  print key+"->"+str(arr[key])

日志格式为:

#111.172.249.84 - - [12/Dec/2011:05:33:36 +0800] "GET /images/i/goTop.png HTTP/1.0" 200 486 "http://wh.xxxx.com/" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)"
#111.172.249.84 - - [12/Dec/2011:05:33:36 +0800] "GET /images/i/goTop.png HTTP/1.0" 200 486 "http://wh.xxxx.com/" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)"
#111.172.249.85 - - [12/Dec/2011:05:33:36 +0800] "GET /images/i/goTop.png HTTP/1.0" 200 486 "http://wh.xxxx.com/" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)"
#111.172.249.86 - - [12/Dec/2011:05:33:36 +0800] "GET /images/i/goTop.png HTTP/1.0" 200 486 "http://wh.xxxx.com/" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)"

输出结果:

111.172.249.86->1
111.172.249.84->2
111.172.249.85->1

注释:python字段的setdefault用法为获取信息,如果获取不到的时候就按照他的参数设置该值

>>> a={}
>>> a['key']='123'
>>> print (a)
{'key': '123'}
>>> print (a.setdefault('key','456'))
#显示a这个字典的'key'值的内容,因为字典有,所以不会去设置它
123
>>> print (a.setdefault('key1','456'))
#显示a这个字典的'key1'值的内容,因为字典没有,所以设置为456了
456
>>> a
{'key1': '456', 'key': '123'}

希望本文所述对大家的Python程序设计有所帮助。

(0)

相关推荐

  • 采用ngxtop实现nginx实时访问数据统计

    对于nginx的实时访问数据统计可采用ngxtop实现监控web server的访问情况 .ngxtop 允许你对 NGINX 的访问日志 (access log) 进行实时解析, 并输出类似 top 的有用信息. ngxtop 是 python 脚本安装包,需要python支持. 对于python的包和库文件我们一般喜欢pip管理,没有安装的可以: wget https://raw.github.com/pypa/pip/master/contrib/get-pip.py python get

  • Java代码统计网站中不同省份用户的访问数

    一.需求 针对log日志中给定的信息,统计网站中不同省份用户的访问数 二.编程代码 package org.apache.hadoop.studyhdfs.mapreduce; import java.io.IOException; import org.apache.commons.lang.StringUtils; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.conf.Configured; im

  • ASP访问数量统计代码

    1.建立数据库表 表名为online 设如下字段 id '用来记录每一个访问都的session.sessionid name '如果是访客,则记录为访客. online '如果是访各为0 如果是会员1 datetime '最近活动时间 username '会员的登录用户名,访客为空. ip '记录访问都的登录IP head.asp '向数据库表写入在线人数,该页面必须搜入到每一个用于浏览ASP页面中. <% set rs=Server.CreateObject("ADODB.Records

  • python统计日志ip访问数的方法

    本文实例讲述了python统计日志ip访问数的方法.分享给大家供大家参考.具体如下: import re f=open("/tmp/a.log","r") arr={} lines = f.readlines() for line in lines: ipaddress=re.compile(r'^#(((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?))') match=ipaddres

  • Python统计日志中每个IP出现次数的方法

    本文实例讲述了Python统计日志中每个IP出现次数的方法.分享给大家供大家参考.具体如下: 这脚本可用于多种日志类型,本人测试MDaemon的all日志文件大小1.23G左右,分析用时2~3分钟 代码很简单,很适合运维人员,有不足的地方请大家指出哦 #-*- coding:utf-8 -*- import re,time def mail_log(file_path): global count log=open(file_path,'r') C=r'\.'.join([r'\d{1,3}']

  • python统计文本文件内单词数量的方法

    本文实例讲述了python统计文本文件内单词数量的方法.分享给大家供大家参考.具体实现方法如下: # count lines, sentences, and words of a text file # set all the counters to zero lines, blanklines, sentences, words = 0, 0, 0, 0 print '-' * 50 try: # use a text file you have, or google for this one

  • webpack本地开发环境无法用IP访问的解决方法

    问题描述: 只能用http://localhost:8080访问项目,不能用http://本机IP:8080访问 解决方案: webpack dev配置文件中加上 host:'0.0.0.0' 以上这篇webpack本地开发环境无法用IP访问的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们. 您可能感兴趣的文章: 解决webpack无法通过IP地址访问localhost的问题

  • vue-cli项目无法用本机IP访问的解决方法

    所遇问题 启动vue-cli项目服务,用本机IP无法访问此网站,拒绝了我们的链接请求.从而无法从手机上预览效果 原因分析 在我们的bulid目录下有一个webpack.dev.config.js的配置文件,发现devServer对象里的host属性取自process.env.HOST || config.dev.host. 于是这里我们去查看config.dev.host.在我们的config目录下有一个index.js, 找到dev对象的host属性 发现该版本的vue-cli将host主机名

  • python使用代理ip访问网站的实例

    实例如下所示: # -*- coding: UTF-8 -*- from urllib import request if __name__ == "__main__": #访问网址 url = 'http://www.whatismyip.com.tw/' #这是代理IP ip = '27.155.101.233:3128' #设置代理ip访问方式,http和https proxy = {'http':ip,'https':ip} #创建ProxyHandler proxy_supp

  • Python 获取主机ip与hostname的方法

    ->基础环境 Linux:ubuntu 16.04 Python : 2.7 ->修改hostname 1:$sudo hostname 2tong-slavetwo 2:$sudo vi /etc/hostname 2tong-slavetwo 3:$sudo vi /etc/hosts 127.0.0.1 localhost 2tong-slavetwo 127.0.1.1 2tong-slavetwo ->Python 环境下输出ip hostname >>>im

  • Python统计时间内的并发数代码实例

    这篇文章主要介绍了Python统计时间内的并发数代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Python实现并发的手段: 1.操作系统提供:进程.线程: 2.编程语言提供:协程:用户空间的调度(py3): # coding:utf-8 # 1.导入模块 # datatime模块用于定义时间及时间的加减操作 # MySQLdb模块用于Python2.0连接数据库,Python3.0连接数据库使用pymysql # xlwt模块是exc

  • Python统计列表元素出现次数的方法示例

    1. 引言 在使用Python的时候,通常会出现如下场景: array = [1, 2, 3, 3, 2, 1, 0, 2] 获取array中元素的出现次数 比如,上述列表中:0出现了1次,1出现了2次,2出现了3次,3出现了2次. 本文阐述了Python获取元素出现次数的几种方法.点击获取完整代码. 2. 方法 获取元素出现次数的方法较多,这里我提出如下5个方法,谨供参考.下面的代码,传入的参数均为 array = [1, 2, 3, 3, 2, 1, 0, 2] 2.1 Counter方法

  • python 统计代码耗时的几种方法分享

    时间戳相减 在代码执行前后各记录一个时间点,两个时间戳相减即程序运行耗时. 获取时间戳time.time() import time start_time = time.time() sum = 0 for i in range(100000000):     sum += i print(sum) end_time = time.time() print("耗时: {:.2f}秒".format(end_time - start_time)) 输出: 4999999950000000

随机推荐