#需求
#监控日志,如果有攻击(多少次以上),就把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 秒