#coding=utf-8
import os,time
while True:
ip_list = []
src_log = '/opt/lampp/logs/access_log'
new_log = '/opt/lampp/logs/access_log_%s'%time.strftime('%Y%m%d%H%M')#分割每分钟日志
os.system('cat {s_log} > {n_log} && > {s_log}'.format(s_log=src_log,n_log=new_log) )
with open(new_log) as fr:
for line in fr:
ip = line.split('-')[0].strip()
ip_list.append(ip)
for ip in ip_list:
if ip_list.count(ip) > 5:
os.system('iptables -I INPUT 1 -p tcp -s %s -j DROP'%ip)
for i in range(ip_list.count(ip)):
ip_list.remove(ip)
time.sleep(60)