python統(tǒng)計日志ip訪問數(shù)的方法
更新時間:2015年07月06日 14:55:56 作者:jiedushi
這篇文章主要介紹了python統(tǒng)計日志ip訪問數(shù)的方法,涉及Python操作日志文件及正則匹配的相關(guān)技巧,非常具有實用價值,需要的朋友可以參考下
本文實例講述了python統(tǒng)計日志ip訪問數(shù)的方法。分享給大家供大家參考。具體如下:
import re
f=open("/tmp/a.log","r")
arr={}
lines = f.readlines()
for line in lines:
ipaddress=re.compile(r'^#(((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?))')
match=ipaddress.match(line)
if match:
ip = match.group(1)
if(arr.has_key(ip)):
arr[ip]+=1
else:
arr.setdefault(ip,1)
f.close()
for key in arr:
print key+"->"+str(arr[key])
日志格式為:
#111.172.249.84 - - [12/Dec/2011:05:33:36 +0800] "GET /images/i/goTop.png HTTP/1.0" 200 486 "http://wh.xxxx.com/" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)" #111.172.249.84 - - [12/Dec/2011:05:33:36 +0800] "GET /images/i/goTop.png HTTP/1.0" 200 486 "http://wh.xxxx.com/" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)" #111.172.249.85 - - [12/Dec/2011:05:33:36 +0800] "GET /images/i/goTop.png HTTP/1.0" 200 486 "http://wh.xxxx.com/" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)" #111.172.249.86 - - [12/Dec/2011:05:33:36 +0800] "GET /images/i/goTop.png HTTP/1.0" 200 486 "http://wh.xxxx.com/" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)"
輸出結(jié)果:
111.172.249.86->1 111.172.249.84->2 111.172.249.85->1
注釋:python字段的setdefault用法為獲取信息,如果獲取不到的時候就按照他的參數(shù)設(shè)置該值
>>> a={}
>>> a['key']='123'
>>> print (a)
{'key': '123'}
>>> print (a.setdefault('key','456'))
#顯示a這個字典的'key'值的內(nèi)容,因為字典有,所以不會去設(shè)置它
123
>>> print (a.setdefault('key1','456'))
#顯示a這個字典的'key1'值的內(nèi)容,因為字典沒有,所以設(shè)置為456了
456
>>> a
{'key1': '456', 'key': '123'}
希望本文所述對大家的Python程序設(shè)計有所幫助。
相關(guān)文章
python3對接mysql數(shù)據(jù)庫實例詳解
這篇文章主要介紹了python3對接mysql數(shù)據(jù)庫,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
python使用pandas讀取json文件并進行刷選導(dǎo)出xlsx文件的方法示例
這篇文章主要介紹了python使用pandas讀取json文件并進行刷選導(dǎo)出xlsx文件的方法,結(jié)合實例形式分析了python調(diào)用pandas模塊針對json數(shù)據(jù)操作的相關(guān)使用技巧,需要的朋友可以參考下2023-06-06
python 讀取鼠標(biāo)點擊坐標(biāo)的實例
今天小編就為大家分享一篇python 讀取鼠標(biāo)點擊坐標(biāo)的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12
Python實現(xiàn)RGB與HSI顏色空間的互換方式
今天小編就為大家分享一篇Python實現(xiàn)RGB與HSI顏色空間的互換方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11
python 子類調(diào)用父類的構(gòu)造函數(shù)實例
這篇文章主要介紹了python 子類調(diào)用父類的構(gòu)造函數(shù)實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03

