#include <stdio.h>
#include <string.h>
int main()
{
int len, i;
int n_elem=0;
int n_utenti=0;
int n_php =0, n_htm =0, n_png =0, n_home =0;
char c;
float media;
int ip1=-1, ip2=-1, ip3=-1, ip4=-1 ; int t_ip1, t_ip2, t_ip3, t_ip4 ; char data[256];
char operation[256];
char page[256];
char nomefile[]="t2.log";
FILE * Fp1 ; Fp1 = fopen(nomefile, "r");
if (Fp1==NULL){
printf("File %s not found\n", nomefile);
exit(-1);
}
t_ip1 = ip1;
t_ip2 = ip2;
t_ip3 = ip3;
t_ip4 = ip4;
while ( fscanf(Fp1, "%d.", &ip1 ) > 0 )
{
fscanf(Fp1, "%d.%d.%d", &ip2, &ip3, &ip4 );
fscanf(Fp1, " - - [%s +0200] %s", data , operation);
fscanf(Fp1, " %s HTTP/1.1", page);
printf( "%d.%d.%d.%d \n", ip1, ip2, ip3, ip4 );
printf( " data: %s \n", data );
printf( " operation: %s \n", operation );
printf( " page: %s \n", page );
n_elem++;
if (t_ip1 != ip1 || t_ip2!= ip2 || t_ip3!= ip3 || t_ip4 != ip4)
n_utenti ++;
len = strlen(page);
if(len == 1 && page [0] == '/')
n_home ++;
for (i=0; i<len-3; i++)
{
if (page[i]== '.' && page[i+1]== 'p' && page[i+2]== 'h' && page[i+3]== 'p')
{
n_php++;
break;
}
if (page[i]== '.' && page[i+1]== 'h' && page[i+2]== 't' && page[i+3]== 'm')
{
n_htm++;
break;
}
if (page[i]== '.' && page[i+1]== 'p' && page[i+2]== 'n' && page[i+3]== 'g')
{
n_png++;
break;
}
} while ( fscanf(Fp1, "%c", &c ) > 0 )
{
if (c == '\n' ) break;
printf("%c" , c);
}
printf( " \n\n\n" );
t_ip1 = ip1;
t_ip2 = ip2;
t_ip3 = ip3;
t_ip4 = ip4;
}
media = (float) n_elem / n_utenti;
printf("Numero di elementi richiesti al server: %d \n", n_elem);
printf("Numero di utenti: %d \n", n_utenti);
printf("Media di oggetti richiesti dagli utenti: %g \n", media);
printf("Numero pagine php richieste: %d \n", n_php);
printf("Numero pagine htm richieste: %d \n", n_htm);
printf("Numero pagine png richieste: %d \n", n_png);
printf("Numero pagine home richieste: %d \n", n_home);
getchar();
fflush (Fp1);
fclose (Fp1);
exit(0);
}