|
|
|
@ -1,6 +1,12 @@
|
|
|
|
|
import sys
|
|
|
|
|
import requests
|
|
|
|
|
|
|
|
|
|
def sorted_dict(d: dict, reverse=True) -> dict:
|
|
|
|
|
return {
|
|
|
|
|
key: d[key]
|
|
|
|
|
for key in sorted(d, key=d.get, reverse=reverse)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
def main(filename: str):
|
|
|
|
|
validnames = {
|
|
|
|
|
'wp-login.php',
|
|
|
|
@ -32,7 +38,7 @@ def main(filename: str):
|
|
|
|
|
}
|
|
|
|
|
hitfiles = {}.fromkeys(validnames, 0)
|
|
|
|
|
requesters = {}
|
|
|
|
|
ips = {}
|
|
|
|
|
locations = {}
|
|
|
|
|
for ip, date, time, timezone, status, method, file in filterwords(filename, validnames):
|
|
|
|
|
hitfiles[file] += 1
|
|
|
|
|
|
|
|
|
@ -42,14 +48,13 @@ def main(filename: str):
|
|
|
|
|
requesters[ip] = 1
|
|
|
|
|
latlon = get_ip_latlon(ip)
|
|
|
|
|
if latlon is not None:
|
|
|
|
|
ips[ip] = latlon
|
|
|
|
|
locations[ip] = latlon
|
|
|
|
|
|
|
|
|
|
hitfiles = sorted_dict(hitfiles)
|
|
|
|
|
print(f'{hitfiles = }')
|
|
|
|
|
requesters = sorted_dict(requesters)
|
|
|
|
|
print(f'{requesters = }')
|
|
|
|
|
print(f'{ips = }')
|
|
|
|
|
req_list = list(requesters)
|
|
|
|
|
req_list.sort(key=req_list.count)
|
|
|
|
|
print(f'{req_list = }')
|
|
|
|
|
print(f'{locations = }')
|
|
|
|
|
|
|
|
|
|
def get_ip_latlon(ip: str) -> (int, int):
|
|
|
|
|
# make a reqest to ip-api.com to associate an ip to a
|
|
|
|
|