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
d52e50f4
authored
Mar 20, 2021
by
Juan Santos Poyato
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Correciones
parent
f407b926
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
47 additions
and
46 deletions
codigo/Dato.py
codigo/Gestor.py
codigo/__pycache__/Dato.cpython-39.pyc
codigo/Dato.py
View file @
d52e50f4
...
@@ -83,8 +83,8 @@ def modificarFecha(cadena):
...
@@ -83,8 +83,8 @@ def modificarFecha(cadena):
# Comprobación
# Comprobación
p
=
Dato
(
#
p = Dato(
"in24.inetnebr.com - - [01/Aug/1995:00:00:01 -0400]
\"
GET /shuttle/missions/sts-68/news/sts-68-mcc-05.txt HTTP/1.0
\"
200 1839"
)
#
"in24.inetnebr.com - - [01/Aug/1995:00:00:01 -0400] \"GET /shuttle/missions/sts-68/news/sts-68-mcc-05.txt HTTP/1.0\" 200 1839")
informe
=
(
'Host Remoto: {}
\n
Fecha: {}
\n
Método de Petición: {}
\n
Protocolo: {}
\n
statusCode: {}
\n
Volumen de transferencia: {}
\n
'
#
informe = ('Host Remoto: {}\nFecha: {}\nMétodo de Petición: {}\nProtocolo: {}\nstatusCode: {}\nVolumen de transferencia: {}\n'
'Marca de tiempo: {}
\n
'
)
#
'Marca de tiempo: {}\n')
print
(
informe
.
format
(
p
.
hostRemoto
,
p
.
fecha
,
p
.
metodoPeticion
,
p
.
vProtocolo
,
p
.
statusCode
,
p
.
volumenTransf
,
p
.
marcaTiempo
))
#
print(informe.format(p.hostRemoto, p.fecha, p.metodoPeticion, p.vProtocolo, p.statusCode, p.volumenTransf, p.marcaTiempo))
\ No newline at end of file
codigo/Gestor.py
View file @
d52e50f4
import
Dato
from
Dato
import
Dato
from
Dato
import
Dato
# Realiza
def
eSpidering
(
reg
):
def
eSpidering
(
reg
):
aQuitar
=
[
"spider"
,
"bot"
,
"crawler"
]
aQuitar
=
[
"spider"
,
"bot"
,
"crawler"
]
c
=
0
c
=
0
...
@@ -13,14 +13,19 @@ def eSpidering(reg):
...
@@ -13,14 +13,19 @@ def eSpidering(reg):
return
reg
return
reg
# Identifica a los usuarios
def
identificacionUsuarios
(
reg
):
def
identificacionUsuarios
(
reg
):
aux
=
[]
aux
=
[]
ret
=
[]
# Cojo las IPs distintas del conjunto de datos
for
r
in
reg
:
for
r
in
reg
:
aux
.
append
(
r
.
hostRemoto
)
aux
.
append
(
r
.
hostRemoto
)
aux
=
set
(
aux
)
# Ordeno los distintos registros de cada usuario de mas antiguos a mas nuevos
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
:
for
usuario
in
aux
:
con
=
[]
con
=
[]
for
r
in
reg
:
for
r
in
reg
:
...
@@ -35,72 +40,67 @@ def identificacionUsuarios(reg):
...
@@ -35,72 +40,67 @@ def identificacionUsuarios(reg):
return
ret
return
ret
def
leerFicheroLog
(
ruta
,
espidering
):
# Lee el fichero log
registros
=
[]
def
leerFicheroLog
(
ruta
,
espidering
,
extensiones
,
valor
):
f
=
open
(
ruta
,
"r"
)
# Obtiene los registros con las extensiones deseadas si se indica
total
=
0
if
extensiones
is
None
:
for
linea
in
f
:
registros
=
obtenerRegistros
(
ruta
)
total
+=
1
else
:
try
:
registros
=
manipularFiltradas
(
ruta
,
extensiones
,
valor
)
registros
.
append
(
Dato
(
linea
))
except
:
# Si se ha pedido spidering, se realiza
continue
f
.
close
()
if
espidering
:
if
espidering
:
registros
=
eSpidering
(
registros
)
registros
=
eSpidering
(
registros
)
print
(
"Procesados "
,
len
(
registros
),
" registros"
)
print
(
"Procesados "
,
len
(
registros
),
" registros"
)
return
registros
return
registros
def
leerFicheroLogEliminarFiltradas
(
ruta
,
extensionesNoDeseadas
,
espidering
):
# Obtenemos los registros de la ruta cuando no se manipulan extensiones
registros
=
[]
def
obtenerRegistros
(
ruta
):
ret
=
[]
f
=
open
(
ruta
,
"r"
)
f
=
open
(
ruta
,
"r"
)
total
=
0
total
=
0
for
linea
in
f
:
for
linea
in
f
:
total
+=
1
total
+=
1
try
:
try
:
aux
=
Dato
(
linea
)
ret
.
append
(
Dato
(
linea
))
admitido
=
True
for
ext
in
extensionesNoDeseadas
:
if
ext
in
aux
.
url
:
admitido
=
false
if
admitido
:
registros
.
append
(
aux
)
except
:
except
:
continue
continue
f
.
close
()
f
.
close
()
if
espidering
:
registros
=
eSpidering
(
registros
)
print
(
"Procesados "
,
len
(
registros
),
" registros"
)
return
registros
return
ret
# Obtiene los registros manipulando las extensiones
def
manipularFiltradas
(
ruta
,
extensiones
,
valor
):
ret
=
[]
def
leerFicheroLogAceptarFiltradas
(
ruta
,
extensionesNoDeseadas
,
espidering
):
registros
=
[]
f
=
open
(
ruta
,
"r"
)
f
=
open
(
ruta
,
"r"
)
total
=
0
total
=
0
for
linea
in
f
:
for
linea
in
f
:
total
+=
1
total
+=
1
try
:
try
:
aux
=
Dato
(
linea
)
aux
=
Dato
(
linea
)
admitido
=
False
admitido
=
valor
for
ext
in
extensiones
NoDeseadas
:
for
ext
in
extensiones
:
if
ext
in
aux
.
url
:
if
ext
in
aux
.
url
:
admitido
=
True
admitido
=
not
valor
if
admitido
:
if
admitido
:
re
gistros
.
append
(
aux
)
re
t
.
append
(
aux
)
except
:
except
:
continue
continue
f
.
close
()
f
.
close
()
if
espidering
:
registros
=
eSpidering
(
registros
)
print
(
"Procesados "
,
len
(
registros
),
" registros"
)
return
registros
return
ret
registros
=
leerFicheroLog
(
"../access_log_Aug95_reducido"
,
True
)
# Se leen los ficheros con spidering, sin extensiones, el ultimo valor da igual (V o F) si no hay extensiones
registros
=
leerFicheroLog
(
"../access_log_Aug95_reducido"
,
True
,
None
,
None
)
registros
=
identificacionUsuarios
(
registros
)
registros
=
identificacionUsuarios
(
registros
)
informe
=
(
"Host Remoto: {}. Marca de tiempo: {}"
)
print
(
"Registros:"
)
for
i
in
registros
:
for
i
in
registros
:
print
(
i
.
hostRemoto
,
" "
,
i
.
marcaTiempo
)
print
(
i
nforme
.
format
(
i
.
hostRemoto
,
i
.
marcaTiempo
)
)
codigo/__pycache__/Dato.cpython-39.pyc
View file @
d52e50f4
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