import ipaddress
mips = open('mips').read().strip().split('\n')
known = open('known').read().strip().split('\n')
def dist(a, b):
for i in range(32, 1, -1):
rana = ipaddress.IPv4Network(a+'/32').supernet(new_prefix=i)
ranb = ipaddress.IPv4Network(b+'/32').supernet(new_prefix=i)
if ipaddress.IPv4Address(a) in ranb or ipaddress.IPv4Address(b) in rana:
return i**8
return 0
def score_cal(oscore):
t = 0
for i in range(len(oscore)):
t += oscore[i] * 0.95**i
return t
print('Possible Malicious IPs:', mips)
print('Known Malicious IPs:', known)
print('-'*20)
for i in mips:
score = []
for j in known:
score.append(dist(i, j) ** 2)
score.sort()
score.reverse()
print()
print('IP:', i)
print('Score:', score_cal(score)//1e22)