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返回的是列表

 

posted @ 2014-02-14 14:05  silence.li  阅读(441)  评论(1编辑  收藏  举报