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
Exemplo n.º 5
0
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()