python分析nginx日志根据共性url屏蔽ip
2014-09-25 10:50
936 查看
<pre name="code" class="python">#!/usr/local/python/bin/python # -*- coding: utf-8 -*- import sys,time,commands,linecache import subprocess from urlparse import urlparse from tailf import tailf import shutil,struct,socket def str2int(str): uint = socket.ntohl(struct.unpack("I",socket.inet_aton(str))[0]) return struct.unpack("i", struct.pack('I', uint))[0] cur_ip_cache = {} commands.getstatusoutput("/home/nginx/sbin/nginx -s reload") time.sleep(5) fh=open('/home/nginx/conf/v42_deny.conf.python','r') for line in fh.readlines(): if line[0:4] == "deny": ip_temp = line.split(' ')[1][0:-2].strip().lstrip() cur_ip_cache[ip_temp] = ip_temp fh.close() log_file = "/home/nginx/logs/www.access.log" for line in tailf(log_file): cur_time = int(time.strftime("%H%M",time.localtime())) if cur_time > 2350: sys.exit(0) if line.find("vsendbymob") > 0 : parse_info = line.split(' ') ip_address = parse_info[0].strip() log_referer = parse_info[5] log_url = parse_info[7] log_time = parse_info[1]+parse_info[2] log_code = parse_info[10] if log_code != '500' and log_code != '200' : #print log_code continue if log_url.find("vsendbymob"): if log_referer=="-" or log_referer.find("ajaxcommons.html")>0: #print("%s\t\t%s\n%s\n%s" %(log_time,ip_address,log_referer,log_url)) #print("%s\t\t%s" %(log_time,ip_address)) if not cur_ip_cache.has_key(ip_address): f=open('zhuochong.log','a') f.write(log_time+"\t\t"+ip_address+"\n") f.close() cur_ip_cache[ip_address] = ip_address f=open('/home/nginx/conf/host_deny.conf.python','a') f.write("deny \t"+ip_address+";\n") f.close() #temp = subprocess.call("/home/nginx/sbin/nginx -s reload", shell=True) shutil.copyfile("/home/nginx/conf/host_deny.conf.python", "/home/nginx/conf/host_deny.conf") temp = commands.getstatusoutput("/home/nginx/sbin/nginx -s reload")
相关文章推荐
- python分析nginx日志的ip,url,status
- python分析nginx日志的ip(中篇二)
- 使用python 分析统计nginx访问日志ip次数并且排序
- python分析nginx日志的ip(上篇)
- python 分析 nginx 日志 ip 并存入sqlite 数据库
- 分析nginx日志并屏蔽采集者ip(nginx屏蔽ip配置实例)
- python分析nginx根据每日请求量自动屏蔽
- python分析nginx日志的ip(中篇一)
- python分析nginx日志的ip(来源)
- python 分析 nginx 日志 ip 并存入sqlite 数据库
- python实现分析apache和nginx日志文件并输出访客ip列表的方法
- nginx 日志分析,python 实现
- python 脚本统计squid日志中的IP访问数和URL访问数量
- Python 分析Nginx 日志并存入MySQL数据库(单线程) 推荐
- 使用Nginx实现根据 IP 匹配指定 URL
- python 正则分析nginx日志
- 对nginx服务器进行日志分析并且封IP
- 通过分析nginx的日志来过滤出访问过于频繁的IP地址,然后添加到nginx的blockip.conf,并重启nginx
- 分析nginx日志脚本之python
- 使用Nginx实现根据 IP 匹配指定 URL