python腳本實(shí)現(xiàn)統(tǒng)計(jì)日志文件中的ip訪(fǎng)問(wèn)次數(shù)代碼分享
適用的日志格式:
106.45.185.214 - - [06/Aug/2014:07:38:59 +0800] "GET / HTTP/1.0" 200 10 "-" "-" 171.104.119.22 - - [06/Aug/2014:08:55:01 +0800] "GET / HTTP/1.0" 200 10 "-" "-" 27.31.238.242 - - [06/Aug/2014:09:43:19 +0800] "GET / HTTP/1.0" 200 10 "-" "-" 218.65.202.131 - - [06/Aug/2014:10:33:59 +0800] "GET / HTTP/1.0" 200 10 "-" "-"
以上為nginx的日志,本程序只適合用于IP在開(kāi)頭并用空格分開(kāi)的這種格式。
實(shí)例代碼:
import sys class Log: def __init__(self, filename,dic,count): self.filename = filename self.dic=dic self.count=count def parse(self): i=1 f=file(self.filename) while True: line=f.readline() if len(line)==0: break ip=line.split(' ') if ip[0] in dic: self.dic[ip[0]]=self.dic[ip[0]]+1 else: self.dic[ip[0]]=i soredic=sorted(self.dic.items(), key=lambda d:d[1],reverse=True) counts=0; for item in soredic: if counts==int(self.count): break print("IP:%s Total Times: %s"%(item[0],item[1])) counts=counts+1 f.close() if __name__=="__main__": if len(sys.argv)<3: print('usage:log.py log.log toptimes\nexample log.py log.log 20\ncode by iswin') sys.exit() dic={} log=Log(sys.argv[1],dic,sys.argv[2]) log.parse()
- Python統(tǒng)計(jì)列表中的重復(fù)項(xiàng)出現(xiàn)的次數(shù)的方法
- python統(tǒng)計(jì)字符串中指定字符出現(xiàn)次數(shù)的方法
- Python統(tǒng)計(jì)單詞出現(xiàn)的次數(shù)
- Python統(tǒng)計(jì)日志中每個(gè)IP出現(xiàn)次數(shù)的方法
- Python實(shí)現(xiàn)統(tǒng)計(jì)給定列表中指定數(shù)字出現(xiàn)次數(shù)的方法
- python 統(tǒng)計(jì)數(shù)組中元素出現(xiàn)次數(shù)并進(jìn)行排序的實(shí)例
- Linux上使用Python統(tǒng)計(jì)每天的鍵盤(pán)輸入次數(shù)
- python用字典統(tǒng)計(jì)單詞或漢字詞個(gè)數(shù)示例
- Python實(shí)現(xiàn)統(tǒng)計(jì)單詞出現(xiàn)的個(gè)數(shù)
- python統(tǒng)計(jì)文本文件內(nèi)單詞數(shù)量的方法
- Python實(shí)現(xiàn)的統(tǒng)計(jì)文章單詞次數(shù)功能示例
相關(guān)文章
Django+Bootstrap實(shí)現(xiàn)計(jì)算器的示例代碼
本文主要介紹了Django+Bootstrap實(shí)現(xiàn)計(jì)算器的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11Python中Django與Echarts的結(jié)合用法圖文詳解
ECharts是一個(gè)第三方控件,下面這篇文章主要給大家介紹了關(guān)于Python中Django與Echarts的結(jié)合用法,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-10-10Flask交互基礎(chǔ)(GET、 POST 、PUT、 DELETE)的使用
這篇文章主要介紹了Flask交互基礎(chǔ)(GET、 POST 、PUT、 DELETE)的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04Python實(shí)現(xiàn)連接FTP并下載文件夾
這篇文章主要為大家介紹了如何利用Python實(shí)現(xiàn)鏈接FTP服務(wù)器,并下載相應(yīng)的文件夾,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-03-03使用python的pexpect模塊,實(shí)現(xiàn)遠(yuǎn)程免密登錄的示例
今天小編就為大家分享一篇使用python的pexpect模塊,實(shí)現(xiàn)遠(yuǎn)程免密登錄的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-02-02PyCharm無(wú)法調(diào)用numpy(報(bào)錯(cuò)ModuleNotFoundError:No?module?named?&a
本文主要介紹了PyCharm無(wú)法調(diào)用numpy(報(bào)錯(cuò)ModuleNotFoundError:No?module?named?'numpy'),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02Python實(shí)現(xiàn)統(tǒng)計(jì)代碼行的方法分析
這篇文章主要介紹了Python實(shí)現(xiàn)統(tǒng)計(jì)代碼行的方法,結(jié)合實(shí)例形式分析了Python針對(duì)代碼行數(shù)的計(jì)算實(shí)現(xiàn)步驟與操作技巧,需要的朋友可以參考下2017-07-07python?包實(shí)現(xiàn)?urllib?網(wǎng)絡(luò)請(qǐng)求操作
這篇文章主要介紹了python包實(shí)現(xiàn)urllib網(wǎng)絡(luò)請(qǐng)求操作,urllib?是?Python?標(biāo)準(zhǔn)庫(kù)中用于網(wǎng)絡(luò)請(qǐng)求的庫(kù),下面urllib的相關(guān)資料介紹,需要的小伙伴可以參考一下2022-04-04