• Python习题-统计日志中访问次数超过限制的IP


    #1、1分钟之内ip访问次数超过200次的,就给他的ip加入黑名单
    #需求分析:
    #1、读日志,1分钟读一次
    #2、获取这1分钟之内所有访问的ip
    #3、判断ip出现的次数,如果出现200次,那么就加入黑名单
    #4、因为每次读文件的时候,都是从文件开头开始读的,所以导致重复读了以前已经读过的
    #5、要记录每次读完之后的,文件指针,再用seek移动到那个位置 tell()
        import time
    pin=0
    while True:
    ips = []
    fr = open('access.log')
    fr.seek(pin)
    for line in fr:
    ip = line.split()[0] #因为日志文件中每行的首个字符串是ip,与后面字符之间的分割是符号空格,所以用split()分割后,返回的list中第一个值就是ip地址,取【0】
    ips.append(ip)
    new_ips = set(ips) #转换为集合
    for new_ip in new_ips:
    if ips.count(new_ip)>200:
    print('加入黑名单的ip是:%s'%new_ip)
    pin = fr.tell() #记录读完的指针位置
    time.sleep(60)
  • 相关阅读:
    成功后的迷失
    让主参与的人生
    生命的见证
    谁偷走了我的安全感
    简单理解分页原理
    WebApp开发入门
    程序员必需知道的搜索引擎的搜索技巧
    提高网页打开速度技巧
    十分钟了解HTTP协议
    简单实现页面临摹设计图功能
  • 原文地址:https://www.cnblogs.com/niuniu2018/p/7696080.html
Copyright © 2020-2023  润新知