12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- 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
|