#需求
#监控日志,如果有攻击(多少次以上),就把ip 拉黑

#分析:
#1、打开日志文件
#2、把 ip 地址取出
#3、判断每一个 ip 出现的次数,如果大于100次的话,加入黑名单
#4、每分钟读一次
#5、记录指针,不重复读取

#示例:

#直接循环一个文件对象的话,每次循环的是文件的每一行
# 文件句柄 文件对象

import time
point = 0 #定义point 用来记录文件指针的位置
while True:

all_ips = []
f  = open(r'C:\Users\Lynn\Desktop\access.log',encoding='utf-8')

f.seek(point) #移动文件指针的位置

for line in f:
ip = line.split()[0]
all_ips.append(ip)

point = f.tell() # 获取到当前文件指针的位置

for i in set(all_ips):
if all_ips.count(i) > 50:
print('攻击的ip是:%s' %i)

f.close()

time.sleep(60) #暂停60 秒