import ipaddress import json #Para usar Silk #SilkFile object (represents a channel for writing to or reading from Silk flow file) #FGlob object (allows retireval of filenames in a silk data store.) minPort = 20 maxPort= 60000 flowHash={} otherHash= {} myNum = 0 counter = 0 PATH = '/Users/Sara/Documents/Univ Classes/Investigacion/netflows.txt' myFile = open(PATH, 'r') ip = myFile.read() flow = json.loads(ip) #Funcion que convierte y devuelve el int ipaddress en notacion punto-decimal def ipConversion(number): ipadd = str(ipaddress.IPv4Address(number)) return ipadd def Analisis(flowHash): sampleHash={} #hash para contener los dip con el numero de conecciones y failed coneccciones connection = [0] * 2 #Lista para contener los valores de conecciones failed y conecciones buenas for i in flow["flows"]: #itera por cada elemento del diccionario de flows posA = ipConversion(i["sip"]) #Devuelve el ip en notacion punto-decimal if i["connection"] == "synack": #No se cual es el formato de esto connection[1]=1 #good conections else: connection [0] =1 #failed conections if posA in sampleHash: sampleHash[posA][0]+=connection[0] sampleHash[posA][1]+= connection[1] #print (posA) else: sampleHash[posA] = [connection[0], connection[1]] #print (posA) return sampleHash