IdentificacionUsuarios bien

parent 55c0cdfa
......@@ -7,16 +7,16 @@ registros = ObtencionRegistro("../access_log_Aug95_reducido", True, [], [])
# Se obtienen y agregan identificaciones de usuarios y sesiones
idUsuarios = IdentificacionUsuarios(registros.registro)
#idSesiones = IdentificacionSesiones(registros.registro, idUsuarios.identificaciones)
idSesiones = IdentificacionSesiones(registros.registro, idUsuarios.identificaciones)
for i in range(len(registros.registro)):
registros.idUsuario = idUsuarios.identificaciones[i]
#registros.idSesiones = idSesiones.sesiones[i]
registros.registro[i].idUsuario = idUsuarios.identificaciones[i]
registros.idSesiones = idSesiones.sesiones[i]
# 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")
print("Resultados: ")
for i in range(len(registros.registro)):
for i in range(20):
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"))
\ No newline at end of file
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))
......@@ -13,34 +13,4 @@ def identificacionSesiones(registros, usuarios):
aux = reasignacionIDs(registros, usuarios, aux)
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):
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
return ordenarEntradas(usuarios, aux)
\ No newline at end of file
# Se obtienen la identificacion de los usuarios
class IdentificacionUsuarios:
def __init__(self, reg):
self.identificaciones = identificacion(reg)
def __init__(self, registro):
self.identificaciones = identificacion(registro)
# Identifica a los usuarios
def identificacion(reg):
aux = []
for r in reg:
aux.append(r.hostRemoto)
# Identifica a los usuarios con un unico ID para cada usuario
def identificacion(registro):
usuariosIdentificados = []
ids = []
cont = 0
return ordenaRegistros(reg, aux)
# Ordeno los distintos registros de cada usuario de mas antiguos a mas nuevos
def ordenaRegistros(reg, aux):
ret = []
for usuario in aux:
con = []
for r in reg:
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
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
if usuario not in usuariosIdentificados:
cont += 1
ids.append(cont)
usuariosIdentificados.append(usuario)
else: # Si no, simplemente se agrega el id del que ya disponía
ids.append(usuariosIdentificados.index(usuario)+1)
return ids
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