-
Notifications
You must be signed in to change notification settings - Fork 0
/
Test_file.py
60 lines (47 loc) · 1.25 KB
/
Test_file.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# importing the module
import re
import itertools
from collections import *
import os
# declaring the regex pattern for IP addresses
pattern = re.compile(r'(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})')
# initializing the list object
lst=[]
dst=[]
my_dict={}
sd_dict={}
# opening and reading the file
with open('logfile') as fh:
fstring = fh.readlines()
# function to get unique values
def unique(list1):
# insert the list to the set
list_set = set(list1)
# convert the set to the list
unique_list = (list(list_set))
for x in unique_list:
dst.append(x)
# function to count occurences of unique values
def countX(lst, x):
count = 0
for ele in lst:
if (ele == x):
count = count + 1
return count
# extracting the IP addresses
for line in fstring:
lst.append(pattern.search(line)[0])
# finding unique IPs
unique(lst)
#counting occurences of unique IPs
for x in dst:
a = countX(lst, x)
my_dict[a] = x
#sorting dictionary
for i in sorted (my_dict.keys()) :
sd_dict[i] = my_dict[i]
# Printing first N items in dictionary
out = dict(itertools.islice(sd_dict.items(), 8))
for i in sorted (out.keys()) :
print(out[i], i)
input()