返回顶部
首页 > 资讯 > 后端开发 > 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

猜你喜欢
  • 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统计日志中IP的数量
    引 入               日志文件,是我们记录用户行为的重要手段。而对于不同的用户,我们往往又会根据IP来区分,所以统计日志文件中的IP访问,对于数据分析人员和相关运营专员来说,是一件重要的事情,这里,采用python这门语言来完...
    99+
    2023-01-31
    数量 日志 python
  • 【python统计分析】stats.ttest_ind 独立样本T检验
    用法 ttest_ind 官方文档 当两总体方差相等时,即具有方差齐性,可以直接检验。 stats.ttest_ind(data1,data2) 当不确定两总体方差是否相等时,应先利用levene检验...
    99+
    2023-09-14
    python 开发语言 numpy
  • shell统计pv和uv、独立ip的方法
    每天分析日志的哥们实在伤不起,经常需要给出PV,UV,独立IP等一些统计值,使用C/C++,java都可以写,过程是这样的,先读取文件,逐行扫描,把能标记的值放入数据结构中,排重得出最终结果,其实Linux...
    99+
    2022-06-04
    独立 方法 pv
  • 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
  • shell脚本实现的网站日志分析统计(可以统计9种数据)
    写了个shell脚本,可以用来统计每天的访问日志,并发送到电子邮箱,方便每天了解网站情况。脚本统计了:1、总访问量2、总带宽3、独立访客量4、访问IP统计5、访问url统计6、来源统计7、404统计8、搜索...
    99+
    2022-06-04
    种数 脚本 网站
  • 怎样使用Python脚本日志功能
      假设要开发一个自动化脚本工具,工程结构如下,Common这个package是框架功能的实现,Scripts目录是我们编写的测试用例脚本(请忽略其他不相关的目录)。   我们对日志功能的需求如下:    ...
    99+
    2022-06-04
    脚本 功能 日志
  • 使用shell脚本分析网站日志统计PV、404、500等数据
    下面的脚本能统计出网站的总访问量,以及404,500出现的次数。统计出来后,我们可以结合监控宝来进行记录,进而可以看出网站访问量是否异常,是否存在攻击,一目了然。还可以根据查看500出现的次数,进而判断网站...
    99+
    2022-06-04
    脚本 数据 日志
  • python编写文件统计脚本
    python编写文件统计脚本 思路:用os模块中的一些函数(os.listdir()、os.path.isdir()、os.path.join()、os.path.abspath()等) 实现功能:显示多级目录,以及自己要找的具体文件类型...
    99+
    2023-01-30
    脚本 文件 python
  • Shell脚本实现分析apache日志中ip所在的地区
    查询ip地址所用的组件 wget http://rfyiamcool.googlecode.com/files/nali-0.1.tar.gz tar zxvf nali-0.1.tar.gz ...
    99+
    2022-06-04
    脚本 地区 日志
  • 如何使用shell脚本分析网站日志统计PV、404、500等数据
    本篇内容介绍了“如何使用shell脚本分析网站日志统计PV、404、500等数据”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!下面的脚本能统...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作