#!/usr/bin/python3 import ipaddress import re # erzeuge dict für die Nummern n={} # erzeuge dict für die IP a={} # lese Logfile with open('/var/log/apache2/access.log', 'r') as file: for line in file: #lese IP ip=(re.search("^[^ ]*", line))[0] if ip == "202.61.224.86" : continue #erzeuge Adresse addr=ipaddress.ip_address(ip) if addr.version == 4 : intmask = 2^16-1 mask = '/16' else : intmask = 2^64-1 mask = '/64' #erzeuge maskierte Adresse ipmasked=int(addr) & intmask #erzeuge Netz net = ipaddress.ip_network(ip+mask, strict=False) net0 = net[0] #Netz existiert noch nicht? if (not (int(net0) in n)) : # lege Netz an n[int(net0)]=1 a[int(net0)]={} #Adresse existiert noch nicht? if (not (ipmasked in (a[int(net0)]))) : # lege Adresse an a[int(net0)][ipmasked]=n[int(net0)] n[int(net0)] = n[int(net0)] + 1 #lese Nummer der Adresse num=a[int(net0)][ipmasked] #ersetze IP mit Netz und Nummer print (re.sub("^[^ ]*", str(net[num]), line), end="")