博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python——ip加入nginx黑名单
阅读量:6092 次
发布时间:2019-06-20

本文共 1208 字,大约阅读时间需要 4 分钟。

需求:因nginx做了防刷机制之后, error.log 会出现ip刷服务器,也被nginx挡掉了,并没有具体刷到后端服务器,但error.log多次出现ip,现计划把出现5次以上的ip写入黑名单。

nginx log日志格式:

2016/09/05 01:11:07 [info] 1354#0: *11981355139 limiting connections by zone "limit", client: 111.164.58.3, server: api.test.cn, request: "GET /test/test?_at=28&_av=103&_avn=1.1.2&_c=%E4%B8%8A%E6%B5%B7&_i=a4fe3bb262c171054f7ca01d8af58337&_la=0&_lo=0&_pm=iPhone&_pv=9.33.2&_pvt=2&_s=2&_sg=FF4C1556E48DBDD8A2&_sh=1136&_sw=6540&_uuid=a4fe3bb262c171054f7c55a01d8af58337&m=2791763&mid=48&pi=1&ps=10&t=1&t2=6Af95DlK55RkmekO-7W8HiTQZysThxEVOE HTTP/1.0", host: "api.test.cn"

写入黑名单文件:

[root@ ~]# more /mnt/nginx/conf/refuseip.conf 

deny 111.164.58.3;

注:以上日志格式正确,ip和链接有篡改过,无法直接访问。

#!/usr/bin/python

# -*- coding:UTF-8 -*-

import subprocess

import os

IP = ("tail -f /mnt/log/nginx/error.log")

file="/mnt/nginx/conf/refuseip.conf"

child= subprocess.Popen(IP,shell=True,stdout=subprocess.PIPE)

flag=[]

while True:

    line = child.stdout.readline()

    if line.find("limit") != -1:

        j = line.split()[11].split(",")[0]

        flag.append(j)

        delete=flag[-1]

        num=flag.count(delete)

        if num>=5:

            for i in range(num):

                index=flag.index(delete)

                del flag[index]

            print flag

            f=open(file,'a')

            f.write("deny " +delete+";"+'\n')

            f.close()

转载地址:http://zgrwa.baihongyu.com/

你可能感兴趣的文章
http://www.blogjava.net/pdw2009/archive/2007/10/08/151180.html
查看>>
cocos2d-x 画
查看>>
hadoop(6)---mapred-site.xml 详解以及常用配置。
查看>>
修改GRUB2背景图片
查看>>
Ajax异步
查看>>
好记性不如烂笔杆-android学习笔记<十六> switcher和gallery
查看>>
JAVA GC
查看>>
codeforce 599B Spongebob and Joke
查看>>
3springboot:springboot配置文件(外部配置加载顺序、自动配置原理,@Conditional)
查看>>
9、Dubbo-配置(4)
查看>>
前端第七天
查看>>
BZOJ 2190[SDOI2008]仪仗队
查看>>
图解SSH原理及两种登录方法
查看>>
[转载] 七龙珠第一部——第058话 魔境圣地
查看>>
【总结整理】JQuery基础学习---样式篇
查看>>
查询个人站点的文章、分类和标签查询
查看>>
基础知识:数字、字符串、列表 的类型及内置方法
查看>>
iOS&OSX系统初步了解
查看>>
JSP的隐式对象
查看>>
P127、面试题20:顺时针打印矩阵
查看>>