日誌監控文件中獲取ip,每一分鐘統計一次,超過200次的計入黑名單
阿新 • • 發佈:2018-09-06
utf-8 spl color bsp 死循環 odin 分割 名單 true
一、日誌文件access.log
#1、要從日誌裏面找到1分鐘之內訪問超過200次的 #2、每分鐘都運行一次 #1、讀取文件內容,獲取到ip地址 #2、把每個ip地址存起來{} #3、判斷ip訪問的次數是否超過200次 #4、加入黑名單 import time point=0 while True: #死循環 ips={} f=open(‘access.log‘,encoding=‘utf-8‘) f.seek(point) for res in f : #循環取文件裏面的每行數據 ip=res.split()[0] #按照空格分割,取第一個元素就是iPif ip in ips: #判斷這個IP 是否存在 # ips[ip]=ips[ip]+1 ips[ip]+=1 #如果存在的話,次數+1 else: ips[ip]=1 #如果不存在ip的次數就是1 point=f.tell() #記錄文件指針位置 for ip,count in ips.items(): #循環這個字典,判斷次數大於200的 if count>=200: print(‘%s,加入黑名單‘%ip) time.sleep(60) #停60秒
日誌監控文件中獲取ip,每一分鐘統計一次,超過200次的計入黑名單