Python分析Nginx每个独立IP访问次数
具体见代码:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
'''
Python 进行单机日志分析示例
检查Nginx的日志文件,统计基于每个独立IP地址的点击率
'''
import re
import sys
from pprint import pprint
contents = sys.argv[1]
def nginx_ip_hite():
#ip:4个字符,每个字符串位1~3个数字,有点连接
ipadd = r'\.'.join([r'\d{1,3}']*4)
re_ip = re.compile(ipadd)
iplist = {}
for line in open(contents):
match = re_ip.match(line)
if match:
ip = match.group()
iplist[ip] = iplist.get(ip, 0) + 1
#也可采用写法 iplist[ip] = iplist.setdefault(ip, 0) +1
pprint(iplist)
nginx_ip_hite(contents)
执行示例:
[root@dbs-testSrv01 python_shell]# ./nginx_ip.py /var/log/nginx/access.log
{'112.74.135.35': 1,
'120.239.64.12': 2,
'120.76.152.142': 1,
'139.162.119.197': 1,
'139.162.124.167': 1,
'140.205.225.188': 2,
'140.205.225.198': 52,
'185.188.204.13': 1,
'192.186.7.25': 1,
'212.83.175.95': 1,
'42.156.251.185': 2,
'47.88.32.165': 1,
'47.90.92.26': 1,
'47.93.90.175': 1,
'58.218.213.32': 1,
'61.160.207.19': 1}