
Diccionario
Publicado por Rafael (3 intervenciones) el 16/12/2017 13:51:24
Hola buenas a todos. Tengo que realizar un ejercicio en el cuál me dan un archivo.log donde vienen una serie de intentos de inicio de sesión donde se muestran las IP y las fechas en las que se intentó acceder. la primera parte del ejercicio la tengo hecha, que es básicamente procesar el fichero(auth.log) y guardar las fechas en un formato procesable (datetime) y que almacenen solo los 'autentication failure'.
Ahora bien, para la segunda parte del ejercicio me piden que guarde cada IP con una lista (ordenada de más reciente a más antiguo) de las fechas en las que no consiguió conectar. Esta segunda parta tiene que tener la siguiente estructura:
tn = fehcas de conexión
ipn = diferentes IP
{}
{ip1:[t1], ip2:[t2]}
{ip1:[t1,t3], ip2[t2]}
{ip1:[t1,t3], ip2[t2], ip3[t4]}
...
Básicamente lo que se pide es que cuando aparezca una IP, si se repite de nuevo, que no la vuelva a mostrar y que guarde solo las fechas de cuando intentó loguear en un diccionario y luego ordenar las fechas de más reciente a más antiguo como dije antes.
Esto es lo que llevo por ahora, que es la primera parte del ejercicio:
from datetime import datetime
import sys
guardar = []
ori = open ('authlog.txt', 'r')
for linea in ori.readlines():
----if "authentication failure" in linea:
---------guardar.append(datetime.strptime(linea[:15], "%b %d %H:%M:%S"))
¿Me podríais ayudar a terminarlo por favor? Muchas gracias de antemano
Aquí adjunto una captura de los logs

Ahora bien, para la segunda parte del ejercicio me piden que guarde cada IP con una lista (ordenada de más reciente a más antiguo) de las fechas en las que no consiguió conectar. Esta segunda parta tiene que tener la siguiente estructura:
tn = fehcas de conexión
ipn = diferentes IP
{}
{ip1:[t1], ip2:[t2]}
{ip1:[t1,t3], ip2[t2]}
{ip1:[t1,t3], ip2[t2], ip3[t4]}
...
Básicamente lo que se pide es que cuando aparezca una IP, si se repite de nuevo, que no la vuelva a mostrar y que guarde solo las fechas de cuando intentó loguear en un diccionario y luego ordenar las fechas de más reciente a más antiguo como dije antes.
Esto es lo que llevo por ahora, que es la primera parte del ejercicio:
from datetime import datetime
import sys
guardar = []
ori = open ('authlog.txt', 'r')
for linea in ori.readlines():
----if "authentication failure" in linea:
---------guardar.append(datetime.strptime(linea[:15], "%b %d %H:%M:%S"))
¿Me podríais ayudar a terminarlo por favor? Muchas gracias de antemano

Aquí adjunto una captura de los logs

Valora esta pregunta


0