C/Visual C - SOS

 
Vista:

SOS

Publicado por utikitak (10 intervenciones) el 18/02/2004 11:51:19
Necesito ayuda urgente. Os planteo mi problema.

Tengo un fichero que contiene el tráfico que se ha producido en una red (hora, min, ss,direccion de origen y destino... hay una entrada por cada paquete que se han intercambiado cada par de estaciones). Bueno, pues tengo que sacar estadísticas cada 2 minutos y cada 10 por cada par de estaciones. Tengo que coger un par origen y destino y encontrar todas las entradas que hay en 2 minutos, mirar los bytes que se han envidado, el tipo de trama...
No se como hacerlo y hay que tener en cuenta que el fichero es muy grande alrededor de 600MB.
Necesito una luz, porque estoy un poco perdida. Muchas gracias.

Aqui teneis una parte del fichero:
17:25:43.921625 IP 192.168.82.17 > 192.168.82.18: icmp 40: echo request seq 30976
17:25:43.921625 IP 192.168.82.18 > 192.168.82.17: icmp 40: echo reply seq 30976
17:25:43.931625 IP 192.168.82.17 > 192.168.82.18: icmp 40: echo request seq 31232
17:25:43.931625 IP 192.168.82.18 > 192.168.82.17: icmp 40: echo reply seq 31232
17:25:44.921625 IP 192.168.82.17 > 192.168.82.18: icmp 40: echo request seq 31488
17:25:44.921625 IP 192.168.82.18 > 192.168.82.17: icmp 40: echo reply seq 31488
17:25:45.181625 IP 192.168.82.18 > 192.168.82.11: icmp 1480: echo request seq 9984
17:27:27.051625 IP 192.168.82.22.1221 > 195.245.248.2.8080: P 10335:10957(622) ack 17134 win 7314
17:27:27.051625 IP 195.245.248.2.8080 > 192.168.82.22.1220: P 43176:43337(161) ack 9542 win 16560
17:27:27.061625 IP 192.168.82.22.1220 > 195.245.248.2.8080: P 9542:10164(622) ack 43337 win 7153
17:27:27.061625 IP 195.245.248.2.8080 > 192.168.82.22.1221: P 17134:17295(161) ack 10957 win 16560
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:SOS

Publicado por J. Oliver Beltran (166 intervenciones) el 18/02/2004 12:16:52
La mejor solucion que se me ocurre es que introduzcas el contenido del fichero en una tabla de una BD.
A partir de ahi puedes realizar todas las consultas que desees, y actualizarla a la vez que almacenas la info en el archivo (o eliminar el archivo y utilizar solo la BD).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:SOS

Publicado por chuidiang (677 intervenciones) el 19/02/2004 09:42:37
Puedes ir leyendo el fichero linea a linea con fgets():
En cada linea, con la funcion strtok(), usando como separador el espacio, obtendras para cada linea las siguientes subcadenas

"17:27:27.051625"
"IP"
"192.168.82.22.1221"
">"
"195.245.248.2.8080:"
"P"
...

Puesto que sabes seguro que en la primera subcadena está la hora, en la tercera una IP y en la quita la otra IP y el formato parece que es fijo, con la funcion sscanf() puedes extraer facilmente los datos.

Por ejemplo, para
cadena = "17:27:27.061625"
puedes hacer

int hora, minuto, segundo, otroNumero;
sscanf (cadena, "%d:%d:%d.%d", &hora, &minuto, &segundo, &otroNumero);

Bueno, espero que esto, un poquito más desarrollado, te sirva.

Se buena.

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar