Nexouille
Messages postés5Date d'inscriptiondimanche 28 avril 2002StatutMembreDernière intervention 2 juin 2002
-
6 mai 2002 à 13:34
anonymousiutblois
Messages postés1Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention24 février 2003
-
24 févr. 2003 à 12:05
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:
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)
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
}
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, " ");
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
Blustuff
Messages postés20Date d'inscriptionjeudi 7 mars 2002StatutMembreDernière intervention27 juin 2007 6 mai 2002 à 20:08
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.
sebastrutz
Messages postés1Date d'inscriptionmardi 7 mai 2002StatutMembreDernière intervention 7 mai 2002 7 mai 2002 à 14:27
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!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Nexouille
Messages postés5Date d'inscriptiondimanche 28 avril 2002StatutMembreDernière intervention 2 juin 2002 7 mai 2002 à 15:12
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 :(