begin process at 2010 03 20 09:22:20
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Analyse fichier log a faire en C


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Analyse fichier log a faire en C

lundi 6 mai 2002 à 13:34:15 | Analyse fichier log a faire en C

Nexouille

A l'aideeeeeeeeeeeeeeeeeeeeeeeeee
***************************************

Les serveurs web enregistrent la trace des visites dans des fichiers de log. Chaque requète (demande d'une page par un navigateur internet) génère une ligne dans un fichier de log (normalement nommé access_log. Ce fichier est utilisé par le webmaster pour déterminer quels sont les pages les plus visitées, combien de visiteurs passent sur le site, etc.
Le but de ce projet est d'écrire un programme permettant d'aider un webmaster à analyser le comportement de ses visiteurs.

Voici un extrait du fichier de log du serveur web de l'IUT:


193.249.12.70 - - [31/Dec/2000:22:26:14 +0500] "GET /precamp.html HTTP/1.1" 200 4775
194.231.30.90 - - [31/Dec/2000:22:26:41 +0500] "GET / HTTP/1.0" 200 6266
193.249.12.70 - - [31/Dec/2000:22:27:01 +0500] "GET /gtr.html HTTP/1.1" 200 9010
64.39.31.110 - - [01/Jan/2001:11:35:08 +0500] "GET / HTTP/1.0" 200 6266
212.217.125.156 - - [01/Jan/2001:21:05:50 +0500] "GET /images/logoiut.gif HTTP/1.0" 200 646
212.217.125.156 - - [01/Jan/2001:21:05:50 +0500] "GET /images/logou2.jpeg HTTP/1.0" 200 3978
212.217.125.156 - - [01/Jan/2001:21:06:16 +0500] "GET /gea.html HTTP/1.0" 200 10052
64.39.31.110 - - [01/Jan/2001:23:26:34 +0500] "GET / HTTP/1.0" 200 6266
216.36.21.13 - - [02/Jan/2001:05:39:42 +0500] "GET / HTTP/1.1" 200 6266
216.36.21.13 - - [02/Jan/2001:05:39:43 +0500] "GET /images/fd.jpeg HTTP/1.1" 200 2089

Les lignes du fichier ont toujours la même structure~: adresse IP du visiteur, date de la requète, requète HTTP. On ignorera la suite de la ligne.
La requète HTTP est normalement GET (on ignorera les autres requètes) et permet de retrouver le nom de la page ou de l'image demandée. Ainsi "GET / HTTP/1.0" est une requète qui demande la page d'accueil (/) du site.

Notons qu'une page qui comporte des images demande plusieurs requètes pour être chargée.

Objectif du programme
Votre programme permettra, à partir d'un fichier de log que l'on vous fournira (fichiers access_log), d'afficher les informations suivantes:
nombre de visites: une visite est caractérisée par le passage d'un visiteur, qui demande quelques pages puis quitte le site. Attention, plusieurs visiteurs peuvent etre actifs simultanément. On introduira un seuil temporel réglable (par exemple, on considera une visite comme terminée s'il n'y a pas de requète depuis 3 minutes). Un visiteur est caractérisé par son adresse IP.
hit parade des pages: afficher la liste des pages vues, triée par nombre de visiteurs.
hit parade des visiteurs: afficher la liste des visiteurs, trié par nombre de visite effectuées.
hit parade des dates: afficher les dates où il y a eu le plus de visites.
Question subsidiaire (non facultative)
Chercher sur Internet des programmes gratuits faisant ce genre de traitements. Quels sont les fonctionnalités qui manquent au votre ?


Voila mon pb c que j'aimerais faire des structures pour selectionner l'ip puis la date et la page visite et ensuite les mettre dans un tabelau pour les trier

Pour le moment j'ai fait qunn truc qui compte le nombre de visite sans rien prendre en compte (pas de timer)

#include <stdio.h> // io access
#include <stdlib.h> // atoi
#include <string.h> // strtok

int nb_de_visites(int argc, char* argv[]);


/**************************************************************************

Procedure Principale

**************************************************************************/

void main ()
{
int toto;
char* titi;
printf("\n");
printf("-------------------------------------------------------------------------------\n");
printf("Analyseur des visites d'un site web \n");
printf("Crée par Nicolas Mrowczynski & Anthony Champalaune\n");
printf("-------------------------------------------------------------------------------\n");
nb_de_visites(toto,&titi); //appelle de la fonction qui donne le nombre de visites
}



/**************************************************************************

Sous Fonctions Utilis,es

**************************************************************************/

int nb_de_visites(int argc, char* argv[])
{
char line[4096];
int toknum = 0;
char * token;
int hits = 0;

FILE* logfile;


if(argv[1] != NULL)
{
logfile = fopen(argv[1], "r");
}

else
{
printf("Le fichier . analyser existe ,'web1.txt'\n");
logfile = fopen("c:\\web1.txt", "r"); //chemin du fichier
}

if(logfile == NULL)
{
printf("Le fichier n'a pas ,t, trouvé.\n");
return 0;
}

if(!(ferror(logfile)))
{
// on continue a lire le fichier jusqu'a la fin

while( fgets(line, 4096, logfile) != NULL )
{

if(line[0] != '#')
{
hits ++;
if ((hits%50000)==0) printf("Nombre de visites: %i\n", hits); //status
// on efface les informations de la ligne
toknum = 0;
strtok(line, " ");

for(toknum = 0; toknum < 9;
toknum ++) strtok(NULL, " ");
}

}
fclose(logfile); //on ferme le fichier
}

else
{
// Il y'a a une erreur
printf("ERREUR d'ouverture!\n");
}
// On montre le nombre de visites
printf("Le nombre de visites : %i\n", hits);
return 0;
}

Je pense crée des structures ou je vais sélectionner toute les addresses ip , puis une autre avec les dates et enfin une autre avec 'addresse visite puis je trirais cela ensuite mais je sais pas si ca va marche comme ca.
Je vois po comment je peux selectionner les partie qui m'interraise

thx pour l'aide
lundi 6 mai 2002 à 20:08:19 | Re : Analyse fichier log a faire en C

Blustuff

En fait ici, tu n'a pas tellement besoin de structures. Tu dois faire, si j'ai bien compris des comptages. L'utilisation de structure va etre utile pour la lecture des requetes, cad que tu pourrais creer une fonction qui converti chaque ligne en une structure. Tu vas donc avoir une structure par ligne. Voic un exemple de structure :

struct Requete
{
int AdresseIP[4];
Date DateRequete;
char* PageDemandee;
}

Voici la definition de la structure Date dont tu as besoin avant la déclaration dee la structure Requete

struct Date
{
int Annee;
int Mois;
int Jour;
int Heure;
int Minute;
int Seconde;
}

Comme tu ne connait pas dans ton programme le nombre de requete, alloue un tableau de Requetes dynamiquement. Tu peux donc maintenant transformer chaque requete en une instance de la structure Requete. J'ai pas le temps d'ecrire le programme en entier. Tu dois ensuite pour le comptage de visite, le hit parade, etc. compter en analysant une par une toutes les structures Requetes pour les compter.


Blustuff.



-------------------------------
Réponse au message :
-------------------------------

A l'aideeeeeeeeeeeeeeeeeeeeeeeeee
***************************************

Les serveurs web enregistrent la trace des visites dans des fichiers de log. Chaque requète (demande d'une page par un navigateur internet) génère une ligne dans un fichier de log (normalement nommé access_log. Ce fichier est utilisé par le webmaster pour déterminer quels sont les pages les plus visitées, combien de visiteurs passent sur le site, etc.
Le but de ce projet est d'écrire un programme permettant d'aider un webmaster à analyser le comportement de ses visiteurs.

Voici un extrait du fichier de log du serveur web de l'IUT:


193.249.12.70 - - [31/Dec/2000:22:26:14 +0500] "GET /precamp.html HTTP/1.1" 200 4775
194.231.30.90 - - [31/Dec/2000:22:26:41 +0500] "GET / HTTP/1.0" 200 6266
193.249.12.70 - - [31/Dec/2000:22:27:01 +0500] "GET /gtr.html HTTP/1.1" 200 9010
64.39.31.110 - - [01/Jan/2001:11:35:08 +0500] "GET / HTTP/1.0" 200 6266
212.217.125.156 - - [01/Jan/2001:21:05:50 +0500] "GET /images/logoiut.gif HTTP/1.0" 200 646
212.217.125.156 - - [01/Jan/2001:21:05:50 +0500] "GET /images/logou2.jpeg HTTP/1.0" 200 3978
212.217.125.156 - - [01/Jan/2001:21:06:16 +0500] "GET /gea.html HTTP/1.0" 200 10052
64.39.31.110 - - [01/Jan/2001:23:26:34 +0500] "GET / HTTP/1.0" 200 6266
216.36.21.13 - - [02/Jan/2001:05:39:42 +0500] "GET / HTTP/1.1" 200 6266
216.36.21.13 - - [02/Jan/2001:05:39:43 +0500] "GET /images/fd.jpeg HTTP/1.1" 200 2089

Les lignes du fichier ont toujours la même structure~: adresse IP du visiteur, date de la requète, requète HTTP. On ignorera la suite de la ligne.
La requète HTTP est normalement GET (on ignorera les autres requètes) et permet de retrouver le nom de la page ou de l'image demandée. Ainsi "GET / HTTP/1.0" est une requète qui demande la page d'accueil (/) du site.

Notons qu'une page qui comporte des images demande plusieurs requètes pour être chargée.

Objectif du programme
Votre programme permettra, à partir d'un fichier de log que l'on vous fournira (fichiers access_log), d'afficher les informations suivantes:
nombre de visites: une visite est caractérisée par le passage d'un visiteur, qui demande quelques pages puis quitte le site. Attention, plusieurs visiteurs peuvent etre actifs simultanément. On introduira un seuil temporel réglable (par exemple, on considera une visite comme terminée s'il n'y a pas de requète depuis 3 minutes). Un visiteur est caractérisé par son adresse IP.
hit parade des pages: afficher la liste des pages vues, triée par nombre de visiteurs.
hit parade des visiteurs: afficher la liste des visiteurs, trié par nombre de visite effectuées.
hit parade des dates: afficher les dates où il y a eu le plus de visites.
Question subsidiaire (non facultative)
Chercher sur Internet des programmes gratuits faisant ce genre de traitements. Quels sont les fonctionnalités qui manquent au votre ?


Voila mon pb c que j'aimerais faire des structures pour selectionner l'ip puis la date et la page visite et ensuite les mettre dans un tabelau pour les trier

Pour le moment j'ai fait qunn truc qui compte le nombre de visite sans rien prendre en compte (pas de timer)

#include <stdio.h> // io access
#include <stdlib.h> // atoi
#include <string.h> // strtok

int nb_de_visites(int argc, char* argv[]);


/**************************************************************************

Procedure Principale

**************************************************************************/

void main ()
{
int toto;
char* titi;
printf("\n");
printf("-------------------------------------------------------------------------------\n");
printf("Analyseur des visites d'un site web \n");
printf("Crée par Nicolas Mrowczynski & Anthony Champalaune\n");
printf("-------------------------------------------------------------------------------\n");
nb_de_visites(toto,&titi); //appelle de la fonction qui donne le nombre de visites
}



/**************************************************************************

Sous Fonctions Utilis,es

**************************************************************************/

int nb_de_visites(int argc, char* argv[])
{
char line[4096];
int toknum = 0;
char * token;
int hits = 0;

FILE* logfile;


if(argv[1] != NULL)
{
logfile = fopen(argv[1], "r");
}

else
{
printf("Le fichier . analyser existe ,'web1.txt'\n");
logfile = fopen("c:\\web1.txt", "r"); //chemin du fichier
}

if(logfile == NULL)
{
printf("Le fichier n'a pas ,t, trouvé.\n");
return 0;
}

if(!(ferror(logfile)))
{
// on continue a lire le fichier jusqu'a la fin

while( fgets(line, 4096, logfile) != NULL )
{

if(line[0] != '#')
{
hits ++;
if ((hits%50000)==0) printf("Nombre de visites: %i\n", hits); //status
// on efface les informations de la ligne
toknum = 0;
strtok(line, " ");

for(toknum = 0; toknum < 9;
toknum ++) strtok(NULL, " ");
}

}
fclose(logfile); //on ferme le fichier
}

else
{
// Il y'a a une erreur
printf("ERREUR d'ouverture!\n");
}
// On montre le nombre de visites
printf("Le nombre de visites : %i\n", hits);
return 0;
}

Je pense crée des structures ou je vais sélectionner toute les addresses ip , puis une autre avec les dates et enfin une autre avec 'addresse visite puis je trirais cela ensuite mais je sais pas si ca va marche comme ca.
Je vois po comment je peux selectionner les partie qui m'interraise

thx pour l'aide
lundi 6 mai 2002 à 20:39:56 | Re : Analyse fichier log a faire en C

Nexouille

Thx pour l'info je vais faire comme t'a dit :) :) :)



-------------------------------
Réponse au message :
-------------------------------

En fait ici, tu n'a pas tellement besoin de structures. Tu dois faire, si j'ai bien compris des comptages. L'utilisation de structure va etre utile pour la lecture des requetes, cad que tu pourrais creer une fonction qui converti chaque ligne en une structure. Tu vas donc avoir une structure par ligne. Voic un exemple de structure :

struct Requete
{
int AdresseIP[4];
Date DateRequete;
char* PageDemandee;
}

Voici la definition de la structure Date dont tu as besoin avant la déclaration dee la structure Requete

struct Date
{
int Annee;
int Mois;
int Jour;
int Heure;
int Minute;
int Seconde;
}

Comme tu ne connait pas dans ton programme le nombre de requete, alloue un tableau de Requetes dynamiquement. Tu peux donc maintenant transformer chaque requete en une instance de la structure Requete. J'ai pas le temps d'ecrire le programme en entier. Tu dois ensuite pour le comptage de visite, le hit parade, etc. compter en analysant une par une toutes les structures Requetes pour les compter.


Blustuff.



-------------------------------
Réponse au message :
-------------------------------

A l'aideeeeeeeeeeeeeeeeeeeeeeeeee
***************************************

Les serveurs web enregistrent la trace des visites dans des fichiers de log. Chaque requète (demande d'une page par un navigateur internet) génère une ligne dans un fichier de log (normalement nommé access_log. Ce fichier est utilisé par le webmaster pour déterminer quels sont les pages les plus visitées, combien de visiteurs passent sur le site, etc.
Le but de ce projet est d'écrire un programme permettant d'aider un webmaster à analyser le comportement de ses visiteurs.

Voici un extrait du fichier de log du serveur web de l'IUT:


193.249.12.70 - - [31/Dec/2000:22:26:14 +0500] "GET /precamp.html HTTP/1.1" 200 4775
194.231.30.90 - - [31/Dec/2000:22:26:41 +0500] "GET / HTTP/1.0" 200 6266
193.249.12.70 - - [31/Dec/2000:22:27:01 +0500] "GET /gtr.html HTTP/1.1" 200 9010
64.39.31.110 - - [01/Jan/2001:11:35:08 +0500] "GET / HTTP/1.0" 200 6266
212.217.125.156 - - [01/Jan/2001:21:05:50 +0500] "GET /images/logoiut.gif HTTP/1.0" 200 646
212.217.125.156 - - [01/Jan/2001:21:05:50 +0500] "GET /images/logou2.jpeg HTTP/1.0" 200 3978
212.217.125.156 - - [01/Jan/2001:21:06:16 +0500] "GET /gea.html HTTP/1.0" 200 10052
64.39.31.110 - - [01/Jan/2001:23:26:34 +0500] "GET / HTTP/1.0" 200 6266
216.36.21.13 - - [02/Jan/2001:05:39:42 +0500] "GET / HTTP/1.1" 200 6266
216.36.21.13 - - [02/Jan/2001:05:39:43 +0500] "GET /images/fd.jpeg HTTP/1.1" 200 2089

Les lignes du fichier ont toujours la même structure~: adresse IP du visiteur, date de la requète, requète HTTP. On ignorera la suite de la ligne.
La requète HTTP est normalement GET (on ignorera les autres requètes) et permet de retrouver le nom de la page ou de l'image demandée. Ainsi "GET / HTTP/1.0" est une requète qui demande la page d'accueil (/) du site.

Notons qu'une page qui comporte des images demande plusieurs requètes pour être chargée.

Objectif du programme
Votre programme permettra, à partir d'un fichier de log que l'on vous fournira (fichiers access_log), d'afficher les informations suivantes:
nombre de visites: une visite est caractérisée par le passage d'un visiteur, qui demande quelques pages puis quitte le site. Attention, plusieurs visiteurs peuvent etre actifs simultanément. On introduira un seuil temporel réglable (par exemple, on considera une visite comme terminée s'il n'y a pas de requète depuis 3 minutes). Un visiteur est caractérisé par son adresse IP.
hit parade des pages: afficher la liste des pages vues, triée par nombre de visiteurs.
hit parade des visiteurs: afficher la liste des visiteurs, trié par nombre de visite effectuées.
hit parade des dates: afficher les dates où il y a eu le plus de visites.
Question subsidiaire (non facultative)
Chercher sur Internet des programmes gratuits faisant ce genre de traitements. Quels sont les fonctionnalités qui manquent au votre ?


Voila mon pb c que j'aimerais faire des structures pour selectionner l'ip puis la date et la page visite et ensuite les mettre dans un tabelau pour les trier

Pour le moment j'ai fait qunn truc qui compte le nombre de visite sans rien prendre en compte (pas de timer)

#include <stdio.h> // io access
#include <stdlib.h> // atoi
#include <string.h> // strtok

int nb_de_visites(int argc, char* argv[]);


/**************************************************************************

Procedure Principale

**************************************************************************/

void main ()
{
int toto;
char* titi;
printf("\n");
printf("-------------------------------------------------------------------------------\n");
printf("Analyseur des visites d'un site web \n");
printf("Crée par Nicolas Mrowczynski & Anthony Champalaune\n");
printf("-------------------------------------------------------------------------------\n");
nb_de_visites(toto,&titi); //appelle de la fonction qui donne le nombre de visites
}



/**************************************************************************

Sous Fonctions Utilis,es

**************************************************************************/

int nb_de_visites(int argc, char* argv[])
{
char line[4096];
int toknum = 0;
char * token;
int hits = 0;

FILE* logfile;


if(argv[1] != NULL)
{
logfile = fopen(argv[1], "r");
}

else
{
printf("Le fichier . analyser existe ,'web1.txt'\n");
logfile = fopen("c:\\web1.txt", "r"); //chemin du fichier
}

if(logfile == NULL)
{
printf("Le fichier n'a pas ,t, trouvé.\n");
return 0;
}

if(!(ferror(logfile)))
{
// on continue a lire le fichier jusqu'a la fin

while( fgets(line, 4096, logfile) != NULL )
{

if(line[0] != '#')
{
hits ++;
if ((hits%50000)==0) printf("Nombre de visites: %i\n", hits); //status
// on efface les informations de la ligne
toknum = 0;
strtok(line, " ");

for(toknum = 0; toknum < 9;
toknum ++) strtok(NULL, " ");
}

}
fclose(logfile); //on ferme le fichier
}

else
{
// Il y'a a une erreur
printf("ERREUR d'ouverture!\n");
}
// On montre le nombre de visites
printf("Le nombre de visites : %i\n", hits);
return 0;
}

Je pense crée des structures ou je vais sélectionner toute les addresses ip , puis une autre avec les dates et enfin une autre avec 'addresse visite puis je trirais cela ensuite mais je sais pas si ca va marche comme ca.
Je vois po comment je peux selectionner les partie qui m'interraise

thx pour l'aide

mardi 7 mai 2002 à 10:17:53 | Re : Analyse fichier log a faire en C

THP


J'ai un problême philosophique à lire ton code, en
particulier :

void main ()
{
int toto;
char* titi;
...
nb_de_visites(toto,&titi);
}

"toto" et "titi" ne sont pas initialisés avant l'appel .....
je penserais plutot lire:

void main( int argc, char**argv)
{
nb_de_visite(argc,argv);
}






-------------------------------
Réponse au message :
-------------------------------

A l'aideeeeeeeeeeeeeeeeeeeeeeeeee
***************************************

Les serveurs web enregistrent la trace des visites dans des fichiers de log. Chaque requète (demande d'une page par un navigateur internet) génère une ligne dans un fichier de log (normalement nommé access_log. Ce fichier est utilisé par le webmaster pour déterminer quels sont les pages les plus visitées, combien de visiteurs passent sur le site, etc.
Le but de ce projet est d'écrire un programme permettant d'aider un webmaster à analyser le comportement de ses visiteurs.

Voici un extrait du fichier de log du serveur web de l'IUT:


193.249.12.70 - - [31/Dec/2000:22:26:14 +0500] "GET /precamp.html HTTP/1.1" 200 4775
194.231.30.90 - - [31/Dec/2000:22:26:41 +0500] "GET / HTTP/1.0" 200 6266
193.249.12.70 - - [31/Dec/2000:22:27:01 +0500] "GET /gtr.html HTTP/1.1" 200 9010
64.39.31.110 - - [01/Jan/2001:11:35:08 +0500] "GET / HTTP/1.0" 200 6266
212.217.125.156 - - [01/Jan/2001:21:05:50 +0500] "GET /images/logoiut.gif HTTP/1.0" 200 646
212.217.125.156 - - [01/Jan/2001:21:05:50 +0500] "GET /images/logou2.jpeg HTTP/1.0" 200 3978
212.217.125.156 - - [01/Jan/2001:21:06:16 +0500] "GET /gea.html HTTP/1.0" 200 10052
64.39.31.110 - - [01/Jan/2001:23:26:34 +0500] "GET / HTTP/1.0" 200 6266
216.36.21.13 - - [02/Jan/2001:05:39:42 +0500] "GET / HTTP/1.1" 200 6266
216.36.21.13 - - [02/Jan/2001:05:39:43 +0500] "GET /images/fd.jpeg HTTP/1.1" 200 2089

Les lignes du fichier ont toujours la même structure~: adresse IP du visiteur, date de la requète, requète HTTP. On ignorera la suite de la ligne.
La requète HTTP est normalement GET (on ignorera les autres requètes) et permet de retrouver le nom de la page ou de l'image demandée. Ainsi "GET / HTTP/1.0" est une requète qui demande la page d'accueil (/) du site.

Notons qu'une page qui comporte des images demande plusieurs requètes pour être chargée.

Objectif du programme
Votre programme permettra, à partir d'un fichier de log que l'on vous fournira (fichiers access_log), d'afficher les informations suivantes:
nombre de visites: une visite est caractérisée par le passage d'un visiteur, qui demande quelques pages puis quitte le site. Attention, plusieurs visiteurs peuvent etre actifs simultanément. On introduira un seuil temporel réglable (par exemple, on considera une visite comme terminée s'il n'y a pas de requète depuis 3 minutes). Un visiteur est caractérisé par son adresse IP.
hit parade des pages: afficher la liste des pages vues, triée par nombre de visiteurs.
hit parade des visiteurs: afficher la liste des visiteurs, trié par nombre de visite effectuées.
hit parade des dates: afficher les dates où il y a eu le plus de visites.
Question subsidiaire (non facultative)
Chercher sur Internet des programmes gratuits faisant ce genre de traitements. Quels sont les fonctionnalités qui manquent au votre ?


Voila mon pb c que j'aimerais faire des structures pour selectionner l'ip puis la date et la page visite et ensuite les mettre dans un tabelau pour les trier

Pour le moment j'ai fait qunn truc qui compte le nombre de visite sans rien prendre en compte (pas de timer)

#include <stdio.h> // io access
#include <stdlib.h> // atoi
#include <string.h> // strtok

int nb_de_visites(int argc, char* argv[]);


/**************************************************************************

Procedure Principale

**************************************************************************/

void main ()
{
int toto;
char* titi;
printf("\n");
printf("-------------------------------------------------------------------------------\n");
printf("Analyseur des visites d'un site web \n");
printf("Crée par Nicolas Mrowczynski & Anthony Champalaune\n");
printf("-------------------------------------------------------------------------------\n");
nb_de_visites(toto,&titi); //appelle de la fonction qui donne le nombre de visites
}



/**************************************************************************

Sous Fonctions Utilis,es

**************************************************************************/

int nb_de_visites(int argc, char* argv[])
{
char line[4096];
int toknum = 0;
char * token;
int hits = 0;

FILE* logfile;


if(argv[1] != NULL)
{
logfile = fopen(argv[1], "r");
}

else
{
printf("Le fichier . analyser existe ,'web1.txt'\n");
logfile = fopen("c:\\web1.txt", "r"); //chemin du fichier
}

if(logfile == NULL)
{
printf("Le fichier n'a pas ,t, trouvé.\n");
return 0;
}

if(!(ferror(logfile)))
{
// on continue a lire le fichier jusqu'a la fin

while( fgets(line, 4096, logfile) != NULL )
{

if(line[0] != '#')
{
hits ++;
if ((hits%50000)==0) printf("Nombre de visites: %i\n", hits); //status
// on efface les informations de la ligne
toknum = 0;
strtok(line, " ");

for(toknum = 0; toknum < 9;
toknum ++) strtok(NULL, " ");
}

}
fclose(logfile); //on ferme le fichier
}

else
{
// Il y'a a une erreur
printf("ERREUR d'ouverture!\n");
}
// On montre le nombre de visites
printf("Le nombre de visites : %i\n", hits);
return 0;
}

Je pense crée des structures ou je vais sélectionner toute les addresses ip , puis une autre avec les dates et enfin une autre avec 'addresse visite puis je trirais cela ensuite mais je sais pas si ca va marche comme ca.
Je vois po comment je peux selectionner les partie qui m'interraise

thx pour l'aide
mardi 7 mai 2002 à 14:27:37 | Re : Analyse fichier log a faire en C

sebastrutz

salut, euh, nicolas ou anthony, je ne sais pas lequel de vous deux a mis ce mess dans le forum...
j'etais tranquillement en train de m'adonner a ma passion -la programmation- (en réalité en train de chercher qqch d'interessant pour mon projet de c...), quand j'ai vu ce message de SOS pour un projet de C que je connais bien... j'ai d'abord pensé que c'etait quelqu'un d'autre qui l'avait posté, mais en lisant ce petit prog, les noms de deux types du groupe G de GTR1 de l'IUT de B. m'ont sauté aux yeux! je sais pas trop si ca gene les profs qu'on demande de l'aide sur le net, mais au cas où, evitez qd meme de laisser vos noms dans le prog, ca serait un coup a vous faire griller...
allez, a lundi!
mardi 7 mai 2002 à 15:12:39 | Re : Analyse fichier log a faire en C

Nexouille

Ca m'apprendra a mettre tjs nos nom des le debut du programme de toute façon le prog c'est nous qui allons le faire c'etait seulement pour savoir comment on peut seelectionner les parties qui nous interraise. Dommage qu'on ne puisse po modifie les messages ,j'aurais vire les nom :(
lundi 24 février 2003 à 12:05:03 | Re : Analyse fichier log a faire en C

anonymousiutblois


que dirai jeanneret si il voyait cette article lol ^^


-------------------------------
Réponse au message :
-------------------------------

> Ca m'apprendra a mettre tjs nos nom des le debut du programme de toute façon le prog c'est nous qui allons le faire c'etait seulement pour savoir comment on peut seelectionner les parties qui nous interraise. Dommage qu'on ne puisse po modifie les messages ,j'aurais vire les nom :(


Cette discussion est classée dans : fichier, printf, http, get, visites


Répondre à ce message

Sujets en rapport avec ce message

bis:download d'un fichier http [ par fredleconte ] Bon j'ai ouvert une socket connecte a un serveur web ( ici www.wanadoo.fr port 80) je fais un 'GET index.html' mais je ne recois rien ( je ne connais Analyse des visites d'un site Web [ par BGMarouene ] Analyse des visites d'un site Web Introduction Les serveurs web enregistrent la trace des visites dans des fichiers de log. Chaque requète (demande d' Creation et lecture d'un fichier typé en C [ par Razily ] Bonjour , voilà j'ai un projet de Mastermind à rendre bientôt et je coince sur une partie du code notamment sur l'enregistrement ! l'idée c'est que le Enregister un tableau de structures dans un fichier [ par krolis ] salut tout le monde. Je voudrais savoir comment faire pour enregistrer un tableau de structure dans un fichier. J'ai essayé mais ça marche pas. Veuill lire une variable dans un fichier [ par momoko94 ] Bonjour, voila le problème, je voudrais rechercher dans un fichier le nombre d'etudinats d'une ville et l'afficher.typedef struct{    char nom_ville[3 un probléme avec la lecture de fichier [ par sanae19 ] bonsoir en fait voila j'ai un petit probléme de lecture de fichier en fait ma, methode marche tres bien tout seule mai le probléme c'est qu'elle enreg Winsock et les accents... [ par fredsor ] Salut a tous, Voila j'ai realisé un projet, celui-ci consiste à récupérer une chaine de caracteres provenant d'une servlet distante.Bon jusque là rien char ** [ par PADYVEN ] Si quelqu'un peut jeter un oeil sur ce code et le critiquer merci(constructive les critiques :-))j'ai un probleme tout betece programme lit un fichier Besoin d'aide pour un programme de lecture et d'ecriture de fichier texte [DEBUTANT] [ par Manu014 ] Bonjour à tous,Je suis actuellement en stage dans un laboratoire d'essais. Le but de mon stage est d'automatiser la prise de mesures en récupérant les pb pour écrire dans un fichier [ par mailliam ] Bonjour tout l'monde..Moi je débute, j'ai un projet assez simple, qui me semblait en tout k jusqu'a maintnt..je veux faire un programme qui change l'i


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,499 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales