zoukankan      html  css  js  c++  java
  • Python监控日志中经常访问的ip

    一、需求:每分钟检查一次日志文件,如果这一分钟内同一个ip请求次数超过200次,加入黑名单

    1、日志文件中,每一行的格式为:XXX.XXX.XXX.XXX - - [04/Jun/2017:05:25:04 +0800] "GET...

    2、第一步:取出每一行的ip

    3、第二步:统计出现次数超过200的ip

    4、第三步:每一分钟重新读取一次日志文件,文件中之前已经读取过的内容无需重复检查

    二、实现代码

    import time
    pin = 0
    while True:
        with open('access.log', 'r') as f:
            f.seek(pin) #定位到上次读取文件后,游标的位置
            ips = []
            for line in f:
                ip = line.split(' ')[0] #提取每一行的ip,保存到list中
                ips.append(ip)
            for ip in set(ips):
                if ips.count(ip) > 200:
                    print('要拉黑的ip为: %s'%ip)
            pin = f.tell() #读取游标当前的位置
        time.sleep(60) #休息60s后开始下一个循环
  • 相关阅读:


    django 认证系统--3
    django 认证系统--2
    django 认证系统--1


    关于二叉树
    [GeeksForGeeks] Remove all half nodes of a given binary tree
    [LintCode] Letter Combinations of a Phone Number
  • 原文地址:https://www.cnblogs.com/jessicaxu/p/7679397.html
Copyright © 2011-2022 走看看