bonjour,
je programme un sniffer en c et j'ai un probleme dans les adresses source et destination, voila ma structure :
lorsque je tente de les afficher de cette maniere :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 struct iphdr // structure IP Header { ..... ..... unsigned int saddr; // Source address unsigned int daddr; // Destination address };
j'ai 2 adresses differentes donc tous est normal , mais quand j'essai de les afficher comme ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 unsigned char * src = (unsigned char *)&(ip->saddr); unsigned char * dest = (unsigned char *)&(ip->daddr); fprintf(stdout,"[ IP : %d.%d.%d.%d -> ",src[0],src[1],src[2],src[3]); fprintf(stdout,"%d.%d.%d.%d ]\r\n",dest[0],dest[1],dest[2],dest[3]);
j'ai toujours l'adresse source identique à l'adresse destination.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 char *src = inet_ntoa(*((struct in_addr *)&ip->saddr)); char *des = inet_ntoa(*((struct in_addr *)&ip->daddr)); printf("%s ---> %s\n",src, des);
savez-vous pourquoi ??
merci d'avance!
Partager