def insertUniqueIps(unique_ips): for ip in unique_ips: URL = "http://ip-api.com/json/" + str(ip) r = requests.get(url=URL) data = r.json() db = databaseHandler.databaseHandler() db.insertUniqueIp(ip, data['country'], data['countryCode'])
def getTotalRequests(): ''' :param FileName: :return: ''' db = databaseHandler.databaseHandler() return db.selectAllRecords()
def getWorstCountry(): db = databaseHandler.databaseHandler() data = db.getRequestTypesPerIp() results = [] for request in data: results.append([ request.ip, int(evaluate(request.ok, request.sqli, request.xss, request.lfi)) ]) worst = min([i[1] for i in results]) ip = "" for i in results: if i[1] == worst: ip = i[0] break for record in data: if record.ip == ip: return record
def getNotOkRequestsPerHour(): db = databaseHandler.databaseHandler() result = db.selectAllNotOKPerHour() response = [dict() for i in range(24)] actualResponse = [[] for i in range(24)] for index, perHour in enumerate(result): for singleRequest in perHour: k = db.getCountryOfIp(singleRequest.remote_host) if k.country + ',' + k.code not in response[index]: response[index][k.country + ',' + k.code] = 0 response[index][k.country + ',' + k.code] += 1 for index, i in enumerate(response): for j in i: toAppend = j.split(',') toAppend.append(i[j]) actualResponse[index].append(toAppend) return actualResponse
import numpy as np from sklearn.model_selection import KFold from sklearn.preprocessing import LabelEncoder from sklearn.metrics import confusion_matrix import codes.databaseHandler as databaseHandler dh = databaseHandler.databaseHandler() def makeRequestSequenceOfChars(string): k = [] for char in string: k.append(ord(char)) length = len(k) t = [0 for i in range(256 - length) ] # fill the rest with 0, so as they will have same length return k + t # Prepairing data data = dh.selectAllRecords() X = [] y = [] for element in data: X.append(makeRequestSequenceOfChars(element.request_url)) y.append(element.request_type) X = np.array(X) labelencoder_y = LabelEncoder() y = labelencoder_y.fit_transform(y)
def getTotalUniqueIps(): db = databaseHandler.databaseHandler() return db.selectAllUniqueIps()