IdentificacionUsuarios bien

parent 55c0cdfa
...@@ -7,16 +7,16 @@ registros = ObtencionRegistro("../access_log_Aug95_reducido", True, [], []) ...@@ -7,16 +7,16 @@ registros = ObtencionRegistro("../access_log_Aug95_reducido", True, [], [])
# Se obtienen y agregan identificaciones de usuarios y sesiones # Se obtienen y agregan identificaciones de usuarios y sesiones
idUsuarios = IdentificacionUsuarios(registros.registro) idUsuarios = IdentificacionUsuarios(registros.registro)
#idSesiones = IdentificacionSesiones(registros.registro, idUsuarios.identificaciones) idSesiones = IdentificacionSesiones(registros.registro, idUsuarios.identificaciones)
for i in range(len(registros.registro)): for i in range(len(registros.registro)):
registros.idUsuario = idUsuarios.identificaciones[i] registros.registro[i].idUsuario = idUsuarios.identificaciones[i]
#registros.idSesiones = idSesiones.sesiones[i] registros.idSesiones = idSesiones.sesiones[i]
# Se muestran resultados log # Se muestran resultados log
informe = ("Registro {}:\nHost Remoto: {}\nFecha: {}\nMetodo de Petición: {}\nURL: {}\nProtocolo: {}\nStatus Code: {}\n" informe = (" - Registro {} -\nHost Remoto: {}\nFecha: {}\nMetodo de Petición: {}\nURL: {}\nProtocolo: {}\nStatus Code: {}\n"
"Volumen de Transferencia: {}Marca de Tiempo: {}\nId Usuario: {}\nId Sesion: {}\n") "Volumen de Transferencia: {}Marca de Tiempo: {}\nId Usuario: {}\nId Sesion: {}\n")
print("Resultados: ") print("Resultados: ")
for i in range(len(registros.registro)): for i in range(20):
r = registros.registro[i] r = registros.registro[i]
print(informe.format(i+1, r.hostRemoto, r.fecha, r.metodoPeticion, r.url, r.vProtocolo, r.statusCode, r.volumenTransf, r.marcaTiempo, r.idUsuario, "r.idSesion")) print(informe.format(i+1, r.hostRemoto, r.fecha, r.metodoPeticion, r.url, r.vProtocolo, r.statusCode, r.volumenTransf, r.marcaTiempo, r.idUsuario, r.idSesion))
\ No newline at end of file
...@@ -13,34 +13,4 @@ def identificacionSesiones(registros, usuarios): ...@@ -13,34 +13,4 @@ def identificacionSesiones(registros, usuarios):
aux = reasignacionIDs(registros, usuarios, aux) aux = reasignacionIDs(registros, usuarios, aux)
return ordenarEntradas(usuarios, aux) return ordenarEntradas(usuarios, aux)
\ No newline at end of file
# 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):
for u in usuarios:
entrada1 = 0
entrada2 = 0
for id in aux:
if u.hostRemoto == id.hostRemoto:
entrada1 = registros[id].marcaTiempo
diferenciaTiempo = entrada1 - entrada2
if diferenciaTiempo > UMBRAL_SESIONES:
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, registro):
self.identificaciones = identificacion(reg) self.identificaciones = identificacion(registro)
# Identifica a los usuarios # Identifica a los usuarios con un unico ID para cada usuario
def identificacion(reg): def identificacion(registro):
aux = [] usuariosIdentificados = []
for r in reg: ids = []
aux.append(r.hostRemoto) cont = 0
return ordenaRegistros(reg, aux) for reg in registro:
usuario = reg.hostRemoto
# Si todavia no se le ha dado un id, se le da y se agrega a la lista de identificados
# Ordeno los distintos registros de cada usuario de mas antiguos a mas nuevos if usuario not in usuariosIdentificados:
def ordenaRegistros(reg, aux): cont += 1
ret = [] ids.append(cont)
usuariosIdentificados.append(usuario)
for usuario in aux: else: # Si no, simplemente se agrega el id del que ya disponía
con = [] ids.append(usuariosIdentificados.index(usuario)+1)
for r in reg: return ids
if r.hostRemoto == usuario:
con.append(r)
# Ordeno
for i in range(len(con)):
for j in range(len(con)):
if con[i].marcaTiempo > con[j].marcaTiempo:
con[i], con[j] = con[j], con[i]
ret += con
return 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