Correciones

parent f407b926
...@@ -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: {}\nFecha: {}\nMétodo de Petición: {}\nProtocolo: {}\nstatusCode: {}\nVolumen 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
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 extensionesNoDeseadas: for ext in extensiones:
if ext in aux.url: if ext in aux.url:
admitido = True admitido = not valor
if admitido: if admitido:
registros.append(aux) ret.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(informe.format(i.hostRemoto, i.marcaTiempo))
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