Identificacion Sesiones

parent 20f72c08
...@@ -14,6 +14,7 @@ class Dato: ...@@ -14,6 +14,7 @@ class Dato:
self.statusCode = None self.statusCode = None
self.volumenTransf = None self.volumenTransf = None
self.marcaTiempo = None self.marcaTiempo = None
self.idSesion = None
# Se obtienen todos los datos # Se obtienen todos los datos
self.obtenerDatos(cadena) self.obtenerDatos(cadena)
...@@ -79,4 +80,4 @@ def modificarFecha(cadena): ...@@ -79,4 +80,4 @@ def modificarFecha(cadena):
mes = i mes = i
numero = numeros[meses.index(i)] numero = numeros[meses.index(i)]
return cadena.replace(mes, numero) return cadena.replace(mes, numero)
\ No newline at end of file
from IdentificacionUsuarios import IdentificacionUsuarios from IdentificacionUsuarios import IdentificacionUsuarios
from IdentificacionSesiones import IdentificacionSesiones
from ObtencionRegistro import ObtencionRegistro from ObtencionRegistro import ObtencionRegistro
registros = ObtencionRegistro("../access_log_Aug95_reducido", True, [], []) registros = ObtencionRegistro("../access_log_Aug95_reducido", True, [], [])
idUsuarios = IdentificacionUsuarios(registros.registro) idUsuarios = IdentificacionUsuarios(registros.registro)
informe = ("Host Remoto: {}. Url: {}") idSesiones = IdentificacionSesiones(registros.registro, idUsuarios.identificaciones)
print("Registros:") print("Registros:")
for i in registros.registro: for i in registros.registro:
print(informe.format(i.hostRemoto, i.url)) print(i)
print("Usuarios:")
for i in idUsuarios:
print(i)
print("Sesiones:")
for i in idSesiones:
print(i)
\ No newline at end of file
class IdentificacionSesiones:
def __init__(self, usuarios, registros):
self.sesiones = identificacionSesiones(registros, usuarios)
# Obtenemos las identificaciones de sesiones
def identificacionSesiones(registros, usuarios):
# Quitamos duplicados
aux = asignarIDs(usuarios)
umbral = 0
aux = reasignacionIDs(registros, usuarios, aux, umbral, )
return ordenarEntradas(usuarios, aux)
# Asigna una única id para cada usuario distinto
def asignarIDs(registros, usuarios):
aux = []
unicos = set(usuarios)
# Para cada usuario distinto asignamos un ID único
for u in unicos:
aux.append(u.hostRemoto)
return aux
# Reasigna los ids para aquellos usuarios cuya diferencia de tiempo exceda el umbral
def reasignacionIDs(registros, usuarios, aux, umbral, reg):
entrada1 = 0
entrada2 = 0
for u in usuarios:
entrada1 =
diferenciaTiempo = entrada2.marcaTiempo - entrada1.marcaTiempo
if diferenciaTiempo > umbral:
aux.append(u.hostRemoto)
return aux
# Reordenamos la entradas por id de sesion
def ordenarEntradas(usuarios, aux):
return aux;
\ No newline at end of file
# Se obtienen la identificacion de los usuarios # Se obtienen la identificacion de los usuarios
class IdentificacionUsuarios: class IdentificacionUsuarios:
def __init__(self, reg): def __init__(self, reg):
self.identificacionUsuarios = identificacion(reg) self.identificaciones = identificacion(reg)
# Identifica a los usuarios # Identifica a los usuarios
...@@ -14,6 +13,7 @@ def identificacion(reg): ...@@ -14,6 +13,7 @@ def identificacion(reg):
return ordenaRegistros(reg, aux) return ordenaRegistros(reg, aux)
# Ordeno los distintos registros de cada usuario de mas antiguos a mas nuevos # Ordeno los distintos registros de cada usuario de mas antiguos a mas nuevos
def ordenaRegistros(reg, aux): def ordenaRegistros(reg, aux):
ret = [] ret = []
......
...@@ -19,6 +19,7 @@ def leerFicheroLog(ruta, espidering, extensionesAdmitidas, extensionesNoAdmitida ...@@ -19,6 +19,7 @@ def leerFicheroLog(ruta, espidering, extensionesAdmitidas, extensionesNoAdmitida
return ret return ret
# Obtengo los registros # Obtengo los registros
def obtenerRegistros(ruta, extensionesAdmitidas, extensionesNoAdmitidas): def obtenerRegistros(ruta, extensionesAdmitidas, extensionesNoAdmitidas):
ret = [] ret = []
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment