python练习:抓取统计log内ip数量
#!/usr/bin/python #-*- coding: utf-8 -*- import os import re rawfile = '/var/log/auth.log' def rawparse(rawfile): ipdict = {} fhandle = open(rawfile,'r') regexp = re.compile('\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}') for line in fhandle: result = regexp.findall(line) if result and ipdict.has_key(result[0]): ipdict[result[0]] = ipdict[result[0]] + 1 elif result: ipdict[result[0]] = 1 print ipdict fhandle.close() rawparse(rawfile)
可以更好的地方:
re,匹配ip地址,这样匹配的口径太大
循环读取文件不是for line in fhandle.readline()
findall返回的是列表