1. 程式人生 > >Python分析NGINX日誌裏面相同IP第一次訪問時間和最後一次訪問時間

Python分析NGINX日誌裏面相同IP第一次訪問時間和最後一次訪問時間

NGINX 日誌分析 Python

有個小夥伴在群裏問如何分析一下相同IP訪問NGINX的第一次訪問時間和最後一次訪問時間,折騰了好一會最後寫出來測試一下,OK沒問題的,所以就記錄在這裏。

思路:

1、文件讀取

2、先找出只訪問一次的 只有一次時間

3、訪問多次的 尋找開始時間和 最後一次時間

1、將所有IP和時間分別定義一個列表 兩者元素相同

2、遍歷搜索IP的index位置,同時去找時間位置

3、最後一次時間需要對IP和時間列表翻轉

列表翻轉方法:

1、 使用reversed()函數:reversed()函數返回的是一個叠代器,而不是一個List,需要再使用List函數轉換一下

2、使用sorted() 其中reverse=True是按降序排列,reverse=False是按照升序排列

3、使用分片: 其中[::-1]代表從後向前取值,每次步進值為1

#/usr/bin/env python
#-*-coding:UTF-8 -*-
ips=[]
datelist=[]
ips_once=[] #僅出現一次的IP集合
ipindex_list=[] #IP信息列表
commdatetime=[] #時間信息列表 和IP信息是一一對應
infodict={}    #創建了一個序列號  IP+時間的字典
ip_count_first=[] #僅出現一次的IP+時間集合
ip_count_many = [] #出現多次 IP第一次時間  第二次時間的集合
print("歡迎使用NGINX日誌分析小工具!!!!")
print("功能一:統計每個IP訪問的次數")
"""
with open("newlog.txt","r")  as  ngfile:
   for line in ngfile:
      iptime=line.split(' ')[0]
      ip =iptime.split('-')[0]
      time  = iptime.split('[')[1]
      print(ip,time)"""
with open("nginxlog.txt","r")  as  ngfile:
   for line in ngfile:
      ips.append(line.split()[0])
      datelist.append(line.split()[1])
      for i  in range(0,int(len(ips))):
         infodict[i]= "IP:"+ips[i]+" 訪問時間:"+datelist[i]
   for ip in set(ips):
      ip_count = str(ips).count(ip)
      print("IP地址: "+ip+" 訪問書次數:"+ str(ip_count))
      if ip_count == 1:
         ip_index = ips.index(ip)
         ip_count_first.append(infodict[ip_index])
         ips_once.append(ip)
         
      
      else:
         first_index = ips.index(ip)
         first_time = datelist[first_index]
         ips_reverse= ips[::-1]
         last_index = ips_reverse.index(ip)
         datelist_reverse = datelist[::-1]
         last_time = datelist_reverse[last_index]
         ip_count_many.append('ip:'+ip+" 第一次訪問時間: "+first_time+' 最後一次訪問時間:'+last_time)
         
#print(ip_count_first)
#多次記錄


print('功能二:統計只訪問1次的IP地址和時間:'.format('*',3))
for  ip_time in ip_count_first:
   print(ip_time)
   
print('功能三:訪問多次的IP地址,第一次時間和最後一次時間:')
for  j in  ip_count_many:
   print(j)

日誌IP和時間部分

103.106.120.4 24/May/2018:06:12:10
103.106.120.4 24/May/2018:06:12:11
103.106.120.4 24/May/2018:06:12:12
103.106.120.4 24/May/2018:06:12:13
103.106.120.4 24/May/2018:06:12:14
103.106.120.4 24/May/2018:06:12:11
103.106.120.4 24/May/2018:06:12:11
103.106.120.4 24/May/2018:06:12:11
103.106.120.4 24/May/2018:06:12:11
103.106.120.4 24/May/2018:06:12:11
103.106.120.4 24/May/2018:06:12:11
103.106.120.4 24/May/2018:06:12:11
103.106.120.4 24/May/2018:06:12:11
103.106.120.4 24/May/2018:06:12:11
103.106.120.4 24/May/2018:06:12:11
103.106.120.4 24/May/2018:06:12:11
103.106.120.4 24/May/2018:06:12:11
103.106.120.4 24/May/2018:06:12:11
103.106.120.4 24/May/2018:06:12:11
103.106.120.4 24/May/2018:06:12:12
103.106.120.4 24/May/2018:06:12:12
153.119.226.180 24/May/2018:06:13:15
153.119.226.180 24/May/2018:06:13:15
153.119.226.180 24/May/2018:06:13:15
153.119.226.180 24/May/2018:06:13:15
153.119.226.180 24/May/2018:06:13:15
153.119.226.180 24/May/2018:06:13:15
153.119.226.180 24/May/2018:06:13:15
153.119.226.180 24/May/2018:06:13:15
153.119.226.180 24/May/2018:06:13:15
153.119.226.180 24/May/2018:06:13:15
153.119.226.180 24/May/2018:06:13:15
153.119.226.180 24/May/2018:06:13:15
153.119.226.180 24/May/2018:06:13:15
153.119.226.180 24/May/2018:06:13:15
153.119.226.180 24/May/2018:06:13:15
153.119.226.180 24/May/2018:06:13:15
153.119.226.180 24/May/2018:06:13:15
153.119.226.180 24/May/2018:06:13:15
153.119.226.180 24/May/2018:06:13:15
153.119.226.180 24/May/2018:06:13:15
153.119.226.180 24/May/2018:06:13:15
153.119.226.180 24/May/2018:06:13:15
153.119.226.180 24/May/2018:06:13:15
153.119.226.180 24/May/2018:06:13:16
153.119.226.180 24/May/2018:06:13:16
153.119.226.180 24/May/2018:06:13:16
153.119.226.180 24/May/2018:06:13:16
153.119.226.180 24/May/2018:06:13:16
153.119.226.180 24/May/2018:06:13:16
153.119.226.180 24/May/2018:06:13:16
153.119.226.180 24/May/2018:06:13:16
153.119.226.180 24/May/2018:06:13:16
153.119.226.180 24/May/2018:06:13:16
153.119.226.180 24/May/2018:06:19:16
123.168.70.118 24/May/2018:06:16:57
123.168.70.118 24/May/2018:06:16:58
123.168.70.118 24/May/2018:06:16:58
123.168.70.118 24/May/2018:06:16:58
123.168.70.118 24/May/2018:06:16:58
123.168.70.118 24/May/2018:06:16:58
123.168.70.118 24/May/2018:06:16:58
123.168.70.118 24/May/2018:06:16:58
123.168.70.118 24/May/2018:06:16:58
123.168.70.118 24/May/2018:06:16:58
123.168.70.118 24/May/2018:06:16:58
123.168.70.118 24/May/2018:06:16:58
123.168.70.118 24/May/2018:06:16:58
123.168.70.118 24/May/2018:06:16:58
123.168.70.118 24/May/2018:06:16:58
123.168.70.118 24/May/2018:06:16:58
123.168.70.118 24/May/2018:06:16:58
123.168.70.118 24/May/2018:06:16:58
123.168.70.118 24/May/2018:06:16:58
123.168.70.118 24/May/2018:06:16:58
123.168.70.118 24/May/2018:06:16:58
123.168.70.118 24/May/2018:06:16:58
123.168.70.118 24/May/2018:06:16:58
123.168.70.118 24/May/2018:06:16:59
123.168.70.118 24/May/2018:06:16:59
123.168.70.118 24/May/2018:06:16:59
123.168.70.118 24/May/2018:06:16:59
123.168.70.118 24/May/2018:06:16:59
123.168.70.118 24/May/2018:06:16:59
123.168.70.118 24/May/2018:06:16:59
123.168.70.118 24/May/2018:06:16:59
123.168.70.118 24/May/2018:06:16:59
123.168.70.118 24/May/2018:06:16:59
123.168.70.118 24/May/2018:06:16:59
123.168.70.118 24/May/2018:06:16:59
123.168.70.118 24/May/2018:06:17:04
123.168.70.118 24/May/2018:06:17:05
123.168.70.118 24/May/2018:06:17:05
123.168.70.118 24/May/2018:06:17:05
123.168.70.118 24/May/2018:06:17:05
123.168.70.118 24/May/2018:06:17:05
123.168.70.118 24/May/2018:06:17:43
123.168.70.118 24/May/2018:06:17:43
112.36.36.74 24/May/2018:06:18:00
183.230.30.249 24/May/2018:06:21:56
103.106.120.4 24/May/2018:06:12:11
103.106.120.4 24/May/2018:06:12:11
103.106.120.4 24/May/2018:06:12:11
103.106.120.4 24/May/2018:06:12:11
103.106.120.4 24/May/2018:06:12:11
103.106.120.4 24/May/2018:06:12:11
103.106.120.4 24/May/2018:06:12:11
103.106.120.4 24/May/2018:06:12:11
103.106.120.4 24/May/2018:06:12:11
103.106.120.4 24/May/2018:06:12:11
103.106.120.4 24/May/2018:06:12:11
103.106.120.4 24/May/2018:06:12:11
103.106.120.4 24/May/2018:06:12:11
103.106.120.4 24/May/2018:06:12:11
103.106.120.4 24/May/2018:06:12:11
103.106.120.4 24/May/2018:06:12:11
103.106.120.4 24/May/2018:06:12:11
103.106.120.4 24/May/2018:06:12:11
103.106.120.4 24/May/2018:06:12:11
103.106.120.4 24/May/2018:06:12:12
103.106.120.4 24/May/2018:06:12:12
153.119.226.180 24/May/2018:06:13:15
153.119.226.180 24/May/2018:06:13:15
153.119.226.180 24/May/2018:06:13:15
153.119.226.180 24/May/2018:06:13:15
153.119.226.180 24/May/2018:06:13:15
153.119.226.180 24/May/2018:06:13:15
153.119.226.180 24/May/2018:06:13:15
153.119.226.180 24/May/2018:06:13:15
153.119.226.180 24/May/2018:06:13:15
153.119.226.180 24/May/2018:06:13:15
153.119.226.180 24/May/2018:06:13:15
153.119.226.180 24/May/2018:06:13:15
153.119.226.180 24/May/2018:06:13:15
153.119.226.180 24/May/2018:06:13:15
153.119.226.180 24/May/2018:06:13:15
153.119.226.180 24/May/2018:06:13:15
153.119.226.180 24/May/2018:06:13:15
153.119.226.180 24/May/2018:06:13:15
153.119.226.180 24/May/2018:06:13:15
153.119.226.180 24/May/2018:06:13:15
153.119.226.180 24/May/2018:06:13:15
153.119.226.180 24/May/2018:06:13:15
153.119.226.180 24/May/2018:06:13:15
153.119.226.180 24/May/2018:06:13:16
153.119.226.180 24/May/2018:06:13:16
153.119.226.180 24/May/2018:06:13:16
153.119.226.180 24/May/2018:06:13:16
153.119.226.180 24/May/2018:06:13:16
153.119.226.180 24/May/2018:06:13:16
153.119.226.180 24/May/2018:06:13:16
153.119.226.180 24/May/2018:06:13:16
153.119.226.180 24/May/2018:06:13:16
153.119.226.180 24/May/2018:06:13:16
153.119.226.180 24/May/2018:06:13:19
123.168.70.118 24/May/2018:06:16:57
123.168.70.118 24/May/2018:06:16:58
123.168.70.118 24/May/2018:06:16:58
123.168.70.118 24/May/2018:06:16:58
123.168.70.118 24/May/2018:06:16:58
123.168.70.118 24/May/2018:06:16:58
123.168.70.118 24/May/2018:06:16:58
123.168.70.118 24/May/2018:06:16:58
123.168.70.118 24/May/2018:06:16:58
123.168.70.118 24/May/2018:06:16:58
123.168.70.118 24/May/2018:06:16:58
123.168.70.118 24/May/2018:06:16:58
123.168.70.118 24/May/2018:06:16:58
123.168.70.118 24/May/2018:06:16:58
123.168.70.118 24/May/2018:06:16:58
123.168.70.118 24/May/2018:06:16:58
123.168.70.118 24/May/2018:06:16:58
123.168.70.118 24/May/2018:06:16:58
123.168.70.118 24/May/2018:06:16:58
123.168.70.118 24/May/2018:06:16:58
123.168.70.118 24/May/2018:06:16:58
123.168.70.118 24/May/2018:06:16:58
123.168.70.118 24/May/2018:06:16:58
123.168.70.118 24/May/2018:06:16:59
123.168.70.118 24/May/2018:06:16:59
123.168.70.118 24/May/2018:06:16:59
123.168.70.118 24/May/2018:06:16:59
123.168.70.118 24/May/2018:06:16:59
123.168.70.118 24/May/2018:06:16:59
123.168.70.118 24/May/2018:06:16:59
123.168.70.118 24/May/2018:06:16:59
123.168.70.118 24/May/2018:06:16:59
123.168.70.118 24/May/2018:06:16:59
123.168.70.113 24/May/2018:06:16:59
123.168.70.118 24/May/2018:06:16:59
123.168.70.110 24/May/2018:06:17:04
123.168.70.117 24/May/2018:06:17:05
123.168.71.118 24/May/2018:06:17:05
123.168.70.118 24/May/2018:06:17:05
123.168.70.118 24/May/2018:06:17:05
123.168.70.118 24/May/2018:06:17:05
123.168.70.118 24/May/2018:06:17:43
123.168.70.118 24/May/2018:06:17:43
112.36.36.74 24/May/2018:06:18:00
183.230.30.249 24/May/2018:06:21:56
112.36.36.70 24/May/2018:06:18:00
112.36.36.70 24/May/2018:06:18:02
110.36.38.70 24/May/2018:06:18:00

結果:

歡迎使用NGINX日誌分析小工具!!!!
功能一:統計每個IP訪問的次數
IP地址: 123.168.71.118 訪問書次數:1
IP地址: 110.36.38.70 訪問書次數:1
IP地址: 153.119.226.180 訪問書次數:68
IP地址: 112.36.36.70 訪問書次數:2
IP地址: 123.168.70.117 訪問書次數:1
IP地址: 123.168.70.113 訪問書次數:1
IP地址: 123.168.70.118 訪問書次數:82
IP地址: 123.168.70.110 訪問書次數:1
IP地址: 112.36.36.74 訪問書次數:2
IP地址: 103.106.120.4 訪問書次數:42
IP地址: 183.230.30.249 訪問書次數:2
功能二:統計只訪問1次的IP地址和時間:
IP:123.168.71.118 訪問時間:24/May/2018:06:17:05
IP:110.36.38.70 訪問時間:24/May/2018:06:18:00
IP:123.168.70.117 訪問時間:24/May/2018:06:17:05
IP:123.168.70.113 訪問時間:24/May/2018:06:16:59
IP:123.168.70.110 訪問時間:24/May/2018:06:17:04
功能三:訪問多次的IP地址,第一次時間和最後一次時間:
ip:153.119.226.180 第一次訪問時間: 24/May/2018:06:13:15 最後一次訪問時間:24/May/2018:06:13:19
ip:112.36.36.70 第一次訪問時間: 24/May/2018:06:18:00 最後一次訪問時間:24/May/2018:06:18:02
ip:123.168.70.118 第一次訪問時間: 24/May/2018:06:16:57 最後一次訪問時間:24/May/2018:06:17:43
ip:112.36.36.74 第一次訪問時間: 24/May/2018:06:18:00 最後一次訪問時間:24/May/2018:06:18:00
ip:103.106.120.4 第一次訪問時間: 24/May/2018:06:12:10 最後一次訪問時間:24/May/2018:06:12:12
ip:183.230.30.249 第一次訪問時間: 24/May/2018:06:21:56 最後一次訪問時間:24/May/2018:06:21:56

技術分享圖片

Python分析NGINX日誌裏面相同IP第一次訪問時間和最後一次訪問時間