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


    最近有一些人或者网站总是喜欢爬取别人家网站内容,于是就想到利用python 脚本分析nginx日志1000条,
    当 IP 1000次中超过100次 自动封 IP 功能,正常情况1000条记录,一般不会超过100个,当然,
    你可以根据情况调整,python代码如下

    #!/usr/bin/python
    
    import os;
    import string;
    lines_ = os.popen("tail -n 1000 /logs/www/nginx.log  |awk -F' ' '{print $1}'|sort|uniq -c|sort -n").read();
    lines = lines_.split("
    ");11
    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分钟运行一次,封禁稳稳的。

    来源:包子博客http://www.jincon.com/archives/406/

  • 相关阅读:
    ACM题集以及各种总结大全
    ACM题集以及各种总结大全
    线段树题集
    线段树题集
    POJ 1159 Palindrome【LCS+滚动数组】【水题】
    POJ 1159 Palindrome【LCS+滚动数组】【水题】
    开课博客
    第一周学习进度
    开学测试
    寒假总结
  • 原文地址:https://www.cnblogs.com/zanao/p/13488901.html
Copyright © 2020-2023  润新知