iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python脚本统计日志独立ip
  • 711
分享到

python脚本统计日志独立ip

脚本独立日志 2023-01-31 02:01:33 711人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

题目:    有如下log文件,请打印出独立IP,并统计独立IP数,打印出访问最多的前5个ip及访问次数:log文件www.log内容类似如下格式:125.78.48.67 - - [25/Dec/2014:15:31:20 +0800] 

题目:

    有如下log文件,请打印出独立IP,并统计独立IP数,打印出访问最多的前5个ip及访问次数:

log文件www.log内容类似如下格式:

125.78.48.67 - - [25/Dec/2014:15:31:20 +0800] "GET /loGo.jpg Http/1.1" 200 5183 "-" "Mozilla/5.0 (compatible; MSIE 9.0; windows NT 6.1; Trident/5.0)"
101.226.166.226 - - [25/Dec/2014:15:31:21 +0800] "GET " 302 26 "-" "Mozilla/5.0 (Windows NT 6.1) AppleWEBKit/537.1 (Khtml, like Gecko) Chrome/21.0.1180.89 Safari/537.1; 360Spider"
101.226.166.226 - - [25/Dec/2014:15:31:21 +0800] "GET " "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1; 360Spider"
125.78.48.67 - - [25/Dec/2014:15:31:20 +0800] "GET /topbanner.jpg HTTP/1.1" 200 51794 "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)"
118.192.170.7 - - [25/Dec/2014:15:31:09 +0800] "GET HTTP/1.1" 200 34381 "-" "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 SE 2.X MetaSr 1.0"
118.192.170.7 - - [25/Dec/2014:15:31:22 +0800] "GET HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 SE 2.X MetaSr 1.0"

解题思路:

    1,读取log内容,过滤出ip地址,保存到一个列表a中

    2,将列表a去重获得列表b  

    3,以b列表长度为最大循环次数做循环获得列表a1,将a1的值添加到b1,然后重置a1  

    4,将b1进行反向排序,打印出来

    5,让使用者选择输出访问最多的前几个ip,也可以给函数传递参数,给一个默认参数打印前几个


--- 刚学python,写的很烂,code: 

#!/usr/bin/env Python
import re

re1 = r'^\d+\.\d+\.\d+\.\d+'
reg = re.compile(re1)

fp = open('www.log')
f_content = fp.readlines()
fp.close()

a = []
for lines in f_content:
    ip = re.findall(reg,lines)
    a.append(ip[0])
b = list(set(a))

b1 = []
for i in range(len(b)):
    a1 = []
    a1.append(a.count(b[i]))
    a1.append(b[i])
    b1.append(a1)
b1.sort(reverse=True)

k = 1
for j in b1:
    print j[0],j[1]
    if k == 5:
        break
    k += 1


--- shell 只需一条命令:

awk '{print $1}' www.log |sort|uniq -c|sort -nr|head -n5


--- 改良了下python代码:

#!/usr/bin/env python
#coding:utf-8
import re
import sys

def getIP():
    log = raw_input('请输入要查询的日志文件名,包括扩展名:')
    re1 = r'^\d+\.\d+\.\d+\.\d+'
    reg = re.compile(re1)
    
    fp = open(log)
    f_content = fp.readlines()
    fp.close()
    
    a = []
    
    for lines in f_content:
        ip = re.findall(reg,lines)
        a.append(ip[0])
    
    b = list(set(a))
    
    b1 = []
    
    for i in range(len(b)):
        a1 = []
        a1.append(a.count(b[i]))
        a1.append(b[i])
        b1.append(a1)
    
    b1.sort(reverse=True)
    k = 1
    num = raw_input('请输入一个数字要查询前几个ip:')
    num = int(num) 
    for j in b1:
        print j[0],j[1]
        if k == num: 
            break
        k += 1
if __name__ == '__main__':
    getIP()


--- 取消了re正则匹配的麻烦:

#!/usr/bin/env python
#coding:utf-8

def getIP():
    log = raw_input('请输入要查询的日志文件名,包括扩展名:')
    
    fp = open(log)
    f_lines = fp.readlines()
    fp.close()
    
    ips = []
    
    for line in f_lines:
        ip = line.split()[0]
        ips.append(ip)
        
    b = list(set(ips))
    
    b1 = []
    
    for i in range(len(b)):
        a1 = []
        a1.append(ips.count(b[i]))
        a1.append(b[i])
        b1.append(a1)
    
    b1.sort(reverse=True)
    k = 1
    num = raw_input('请输入一个数字要查询前几个ip:')
    num = int(num) 
    for j in b1:
        print j[0],j[1]
        if k == num: 
            break
        k += 1
if __name__ == '__main__':
    getIP()


--结束END--

本文标题: python脚本统计日志独立ip

本文链接: https://www.lsjlt.com/news/186341.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python脚本统计日志独立ip
    题目:    有如下log文件,请打印出独立IP,并统计独立IP数,打印出访问最多的前5个ip及访问次数:log文件www.log内容类似如下格式:125.78.48.67 - - [25/Dec/2014:15:31:20 +0800] ...
    99+
    2023-01-31
    脚本 独立 日志
  • python统计独立IP
    ####python统计独立IP#####!/usr/bin/python #coding:utf8 import re import sys import time yesterday=time.strftime('%Y%m%d',tim...
    99+
    2023-01-31
    独立 python IP
  • 独立ip日本虚拟主机是什么
    独立 IP 日本虚拟主机是一种基于虚拟化技术的云主机,提供独立的 IP 地址和日本服务器的托管服务。它可以让用户在互联网上拥有一个独...
    99+
    2023-05-13
    独立ip日本虚拟主机 日本虚拟主机 虚拟主机
  • 独立ip日本虚拟主机怎么用
    独立ip日本虚拟主机的使用方法如下:1、挑选服务器首先要根据自己的需求,选择合适的服务器。2、安装操作系统将操作系统安装在服务器上,...
    99+
    2023-03-06
    独立ip日本虚拟主机 日本虚拟主机 虚拟主机
  • 【python统计分析】stats.ttest_ind 独立样本T检验
    用法 ttest_ind 官方文档 当两总体方差相等时,即具有方差齐性,可以直接检验。 stats.ttest_ind(data1,data2) 当不确定两总体方差是否相等时,应先利用levene检验...
    99+
    2023-09-14
    python 开发语言 numpy
  • 用python统计日志中IP的数量
    引 入               日志文件,是我们记录用户行为的重要手段。而对于不同的用户,我们往往又会根据IP来区分,所以统计日志文件中的IP访问,对于数据分析人员和相关运营专员来说,是一件重要的事情,这里,采用python这门语言来完...
    99+
    2023-01-31
    数量 日志 python
  • nginx切割日志脚本(python)
    因为以前没有做nginx日志分割,有时候想看日志的时候总是发现有十几G的甚至上百G的日志文件,于是就想使用python写个nginx日志分割(当然你也可以使用shell来完成都是很简单) 需求:1.按照日分割nginx所有日志2.由于日志不...
    99+
    2023-01-31
    脚本 日志 nginx
  • python切割nginx日志脚本
    #!/usr/bin/env python#-*-coding:utf-8-*-#Python nginx cut log 1import subprocessdef mkdir():        subprocess.call('mkd...
    99+
    2023-01-31
    脚本 日志 python
  • 如何实现shell统计pv和uv独立ip
    本篇内容主要讲解“如何实现shell统计pv和uv独立ip”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何实现shell统计pv和uv独立ip”吧!Nngix输出的access log文件如下...
    99+
    2023-06-09
  • python脚本之ftp上传日志
    因为ssoc日志巨大,很快就把磁盘占满。需要每天把备份上传到ftp服务器上,所以根据网上的资料,做了个简单的脚本。算是第一次自己拼凑出的脚本。还很简单,特别是把异常处理简化了。因为本身单一,然后把屏幕输出用管道命令》直接写到本地文件,充当日...
    99+
    2023-01-31
    脚本 上传 日志
  • shell脚本怎么实现的网站日志分析统计
    本篇内容主要讲解“shell脚本怎么实现的网站日志分析统计”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“shell脚本怎么实现的网站日志分析统计”吧!写了个shell脚本,可以用来统计每天的访问...
    99+
    2023-06-09
  • Python编写日志分析小脚本
    import re def count_patt(fname, patt):result = {}cpatt = re.compile(patt)fobj = open(fname)for line in fobj:m = cpatt.se...
    99+
    2023-01-31
    脚本 日志 Python
  • Python统计节假日剩余天数的脚本
    目录1、前言2、倒计时脚本1、前言 如何快速的想了解距离节假日还有多少天? 接下来使用Python脚本来解决这个问题。 2、倒计时脚本 脚本代码: #!/usr/bin/env py...
    99+
    2024-04-02
  • python编写文件统计脚本
    python编写文件统计脚本 思路:用os模块中的一些函数(os.listdir()、os.path.isdir()、os.path.join()、os.path.abspath()等) 实现功能:显示多级目录,以及自己要找的具体文件类型...
    99+
    2023-01-30
    脚本 文件 python
  • 如何使用shell脚本分析网站日志统计PV、404、500等数据
    本篇内容介绍了“如何使用shell脚本分析网站日志统计PV、404、500等数据”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!下面的脚本能统...
    99+
    2023-06-09
  • 如何在shell中运行Python脚本并记录日志?
    在现代软件开发中,Python 已经成为了不可或缺的工具。而 shell 脚本也是我们日常工作中经常使用的工具。在一些场景下,我们需要在 shell 脚本中调用 Python 脚本,并且需要记录 Python 脚本的日志。本文将介绍如何在...
    99+
    2023-10-27
    path 日志 shell
  • python 分析设备日志统计在线时间
    需求:领导要求分析服务日志,计算出各个设备的在线时长,在线率,设备使用率等。服务日志格式为:2018-03-01 00:13:52,815 [protocol.handler.1][INFO] - cn.testin.trans.contr...
    99+
    2023-01-31
    在线 时间 设备
  • 如何实现并分析Shell脚本apache日志中ip所在的地区
    这篇文章主要讲解了“如何实现并分析Shell脚本apache日志中ip所在的地区”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何实现并分析Shell脚本apache日志中ip所在的地区”吧...
    99+
    2023-06-09
  • 如何在 Python 容器中使用 Bash 脚本来记录日志?
    Python 是一种高级编程语言,它提供了许多功能,其中包括处理和操作数据的能力。Bash 脚本则是一种在 Linux 和 Unix 操作系统中使用的脚本语言,它可以用于自动化任务和处理系统日志等任务。在本文中,我们将介绍如何在 Pytho...
    99+
    2023-10-22
    容器 日志 bash
  • 如何在Linux系统中利用PHP脚本进行日志监控
    随着Linux系统的广泛应用,对于系统的监控和日志分析变得越来越重要。而其中,使用PHP脚本进行日志监控是一种常见的方式。本文将介绍如何使用PHP脚本实现简单的日志监控,并提供具体的代码示例。一、创建PHP脚本文件首先,在Linux系统上创...
    99+
    2023-10-21
    Linux系统 日志监控 关键词: PHP脚本
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作