統計IP個數

2021-07-27 04:14:34 字數 1657 閱讀 9238

最近公司官網很不穩定,於是有乙個需求,統計在apache訪問日誌下面的ip個數。

這個實現起來其實也就一條awk命令,可以這樣寫:

awk對檔案進行流處理,每次讀取一行。$1就是ip,count[i]++是將ip作為乙個陣列的下標,並且使得統計這個ip所對應的陣列元素自增1.end後面的語句是列印結果,只執行一次。

這裡用python也可以實現相同功能,並且更為靈活,體現在可以根據不同的正則匹配不同的內容,而且用字典key-value(key為ip,value為個數),比awk更為容易理解。統計哪個檔案也可以作為引數輸入到這個指令碼。

函式式程式設計

test()物件導向程式設計

#!/usr/bin/env python

import re

import sys

class

counts

(object):

def__init__

(self, patt):

self.patt = patt

self.db = {}

defcountpatt

(self,fname):

with file(fname) as f:

for eachline in f:

m = re.search(self.patt,eachline)

if m is

notnone:

dbkey = m.group()

self.db[dbkey] = self.db.get(dbkey,0) + 1

return self.db

deftest

(): countip = counts('\d\.\d\.\d\.\d')

print countip.countpatt(sys.argv[1])

countbrowsers = counts('firefox|chrome')

print countbrowsers.countpatt(sys.argv[1])

if __name__=='__main__':

test()

統計單詞個數

輸入 檔名稱 sum123.cpp 作 者 林海雲 完成日期 2014年12月16日 版 本 號 v2.0 問題描述 統計各陣列中單詞的個數 程式輸入 程式輸出 統計結果 include includeusing namespace std int pwordnum char str int mai...

字元個數統計

描述 編寫乙個函式,計算字串中含有的不同字元的個數。字元在acsii碼範圍內 0 127 不在範圍內的不作統計。知識點字串,函式,指標 執行時間限制 10m記憶體限制 128輸入 輸入n個字元,字元在acsii碼範圍內 0 127 輸出輸出字元的個數。樣例輸入 abc樣例輸出 3 include u...

字元個數統計

編寫乙個函式,計算字串中含有的不同字元的個數。字元在acsii碼範圍內 0 127 不在範圍內的不作統計。時間限制 1秒空間限制 32768k 輸入描述 輸入n個字元,字元在acsii碼範圍內。輸出描述 輸出範圍在 0 127 字元的個數。輸入例子 abc 輸出例子 3 解題的思路 1 使用for迴...