Python檔案練習_尋找log中的IP並統計

來源:互聯網
上載者:User

標籤:int   window   webkit   磁碟   min   檔案   日誌   end   while   

需求:監控日誌,如果有攻擊,就把ip加入黑名單

分析:

1、開啟記錄檔

2、把ip地址拿出來

3、判斷每一個ip出現的次數,如果大於50次的話,加入黑名單

4、每分鐘讀一次

log樣式:

178.210.90.90 - - [04/Jun/2017:03:44:13 +0800] "GET /wp-includes/logo_img.php HTTP/1.0" 302 161 "http://nnzhp.cn/wp-includes/logo_img.php" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.99 Safari/533.4" "10.3.152.221"178.210.90.90 - - [04/Jun/2017:03:44:13 +0800] "GET /blog HTTP/1.0" 301 233 "http://nnzhp.cn/wp-includes/logo_img.php" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.99 Safari/533.4" "10.3.152.221"178.210.90.90 - - [04/Jun/2017:03:44:15 +0800] "GET /blog/ HTTP/1.0" 200 38278 "http://nnzhp.cn/wp-includes/logo_img.php" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.99 Safari/533.4" "10.3.152.221"66.249.75.29 - - [04/Jun/2017:03:45:55 +0800] "GET /bbs/forum.php?mod=forumdisplay&fid=574&filter=hot HTTP/1.1" 200 17482 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" "-"37.9.169.20 - - [04/Jun/2017:03:47:59 +0800] "GET /wp-admin/security.php HTTP/1.1" 302 161 "http://nnzhp.cn/wp-admin/s

實現:

import timepoint = 0 #每次記錄檔案指標的位置while True:#持續讀取即時更新的log    all_IP = []    f=open(‘access.log‘,encoding=‘utf-8‘)    #不能用read來直接讀檔案,檔案從磁碟開啟載入記憶體,進入cpu分析,若檔案過大,記憶體會被佔滿,電腦回卡死    f.seek(point)  # 移動檔案指標,已統計過的IP不再額外統計    for line in f:#直接迴圈一個檔案對象的話,每次迴圈的是檔案的每一行        IP = line.split(‘-‘)[0].strip()#取出IP        all_IP.append(IP)#將IP放入列表    point = f.tell()  # 記錄了指標的位置    all_IP_set = set(all_IP)#集合天生去重    for i in all_IP_set:#迴圈集合比迴圈列表效率高,已去重        if all_IP.count(i) > 50:            print(‘加入黑名單的IP是%s,一分鐘內出現了%s次‘%(i,all_IP.count(i)))    f.close()    time.sleep(60)#每分鐘讀一次

 

Python檔案練習_尋找log中的IP並統計

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.