Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Miguel Ángel González Gallardo
/
AnalizadorLogs
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
911ad49a
authored
Mar 22, 2021
by
Juan Santos Poyato
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
IdentificacionUsuarios bien
parent
55c0cdfa
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
25 additions
and
65 deletions
codigo/Gestor.py
codigo/IdentificacionSesiones.py
codigo/IdentificacionUsuarios.py
codigo/__pycache__/IdentificacionSesiones.cpython-39.pyc
codigo/__pycache__/IdentificacionUsuarios.cpython-39.pyc
codigo/Gestor.py
View file @
911ad49a
...
...
@@ -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 {}:
\n
Host Remoto: {}
\n
Fecha: {}
\n
Metodo de Petición: {}
\n
URL: {}
\n
Protocolo: {}
\n
Status Code: {}
\n
"
informe
=
(
"
- Registro {} -
\n
Host Remoto: {}
\n
Fecha: {}
\n
Metodo de Petición: {}
\n
URL: {}
\n
Protocolo: {}
\n
Status Code: {}
\n
"
"Volumen de Transferencia: {}Marca de Tiempo: {}
\n
Id Usuario: {}
\n
Id 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
))
codigo/IdentificacionSesiones.py
View file @
911ad49a
...
...
@@ -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
codigo/IdentificacionUsuarios.py
View file @
911ad49a
# Se obtienen la identificacion de los usuarios
class
IdentificacionUsuarios
:
def
__init__
(
self
,
reg
):
self
.
identificaciones
=
identificacion
(
reg
)
def
__init__
(
self
,
reg
istro
):
self
.
identificaciones
=
identificacion
(
reg
istro
)
# 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
(
reg
istro
):
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
codigo/__pycache__/IdentificacionSesiones.cpython-39.pyc
View file @
911ad49a
No preview for this file type
codigo/__pycache__/IdentificacionUsuarios.cpython-39.pyc
View file @
911ad49a
No preview for this file type
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment