python统计tomcat访问量高的ip并写到配置文件封禁
本帖最后由 zephyrss 于 2019-11-12 18:15 编辑今天刚出炉的小脚本,眼下有这么个需求,在一台win2003服务器上跑了一个tomcat网站,经常被人爬,一时找不到好的解决方法,就在网上搜罗相关内容,最后凝聚成了这个python小脚本。
大致思路就是读取日志,截取统计ip,判断ip访问量大于一个数,然后给写到tomcat的配置文件里那条封禁ip的参数,最后重启tomcat。
然后写个计划任务和bat就搞定了
格式乱了。贴个图吧。
import osimport linecacheimport datetime
#2019-11-12 #zephyrss
dateTime_p = datetime.datetime.now()
date_p = dateTime_p.date()
date_p = str(date_p)
def shutdown():
print("tomcat正在重启,请稍等...")
os.system("d:\i.bat")
print("关闭tomcat成功")#shutdown()
ips = []
fr = open('d:\\'+date_p+'.txt')
fr.seek(0)for line in fr:
ip = line.split()
ips.append(ip)
new_ips = set(ips)
for new_ip in new_ips:
if ips.count(new_ip)>200:
var1=str(new_ip)
with open("d:\server.xml", 'r') as f:
lines = f.readlines()
lines.insert(28, '<Valve className=\"org.apache.catalina.valves.RemoteAddrValve\" deny=\"' + var1 + '\"/>\n') #lines.insert(28, var1)
s = ''.join(lines).strip('\n')
with open("d:\server.xml", 'w') as f:
f.write(s)
shutdown()
print('程序结束')
重启tomcat不担心业务频繁中断? 还是建议拒绝策略加到防火墙上面 whh19921024 发表于 2019-11-13 09:59
重启tomcat不担心业务频繁中断? 还是建议拒绝策略加到防火墙上面
防火墙服务起不来。估计系统有问题了。。。临时解决吧。
页:
[1]