netskope/Netskope_APIEvents-02.py

41 lines
1.3 KiB
Python
Raw Normal View History

2022-07-18 17:28:22 +02:00
#!/usr/bin/env python3
import json
import urllib.request
import argparse
from collections import Counter
from operator import itemgetter
parser = argparse.ArgumentParser(description="API Call to collect data")
parser.add_argument("tenant", type=str, help="Tenant Name")
parser.add_argument("token", type=str, help="Tenat API Token")
parser.add_argument("-t", "--timeperiod", type=int, default='604800', help="Timeperiod (default: 604800)")
try:
args = parser.parse_args()
tenant = args.tenant
token = args.token
timeperiod = args.timeperiod
except argparse.ArgumentError as e:
print(str(e))
def print_dict(dict, json_content):
for key, value in sorted(dict.items(), key = itemgetter(1), reverse = True):
print ("{:<35s}{:5d}".format(key, value))
base_url = "https://{}.goskope.com/api/v1/events?token={}&type=page&timeperiod={}".format(tenant, token, timeperiod)
req = urllib.request.Request(base_url)
with urllib.request.urlopen(req) as response:
content = response.read()
json_content = json.loads(content)
domains = Counter(data['domain'] for data in json_content['data'])
categories = Counter(data['category'] for data in json_content['data'])
print ("==== Domains ===")
print_dict (domains, json_content)
print ("\n")
print ("==== Categories ===")
print_dict (categories)