python脚本分析nginx日志1000条IP超过100次自动封 IP

最近有一些王八蛋,总是喜欢爬取网站内容,于是就想到利用python 脚本分析nginx日志1000条,

IP 1000次中超过100次 自动封 IP 功能,正常情况1000条记录,一般不会超过100个,当然,

你可以根据情况调整,python代码如下

#!/usr/bin/python

__author__ = 'jincon'

import os;
import string;

lines_ = os.popen("tail -n 1000 /home/www/nginx.log  |awk -F' ' '{print $1}'|sort|uniq -c|sort -n").read();
lines = lines_.split("\n");

for line in lines:
	if line != '':
		line = line.strip();
		lineArr = line.split(" ");
		if int(lineArr[0])>50:
			print lineArr[1]+"=="+lineArr[0];


print "ok";

这个代码,我没有写封 I P 的功能,封 IP,一般普通的服务器不外乎就 iptables 和 nginx 的 deny 了

iptables很简单,我就不说了。

nginx 的话,可以在 python 脚本里面把超过限制的 IP,写入到一个文件里面然后 nginx  ,include 就行了,当然你还要reload 下 nginx,注意,不要重启,没必要,只要加载配置文件即可。

最后就是加一个计划任务,譬如每隔5分钟运行一次,封特么的的。


关键词: python脚本 , nginx日志

上一篇: 他妈的鄙视壹聚教程网111cn.net等这样垃圾人和垃圾站
下一篇: iTerm2让SSH自动输入免密码登录远程Linux服务器

目前还没有人评论,您发表点看法?
发表评论

评论内容 (必填):