bonjour,
je programme un sniffer en c et j'ai un probleme dans les adresses source et destination, voila ma structure :

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
     };
lorsque je tente de les afficher de cette maniere :
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 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
char *src = inet_ntoa(*((struct in_addr *)&ip->saddr));
char *des = inet_ntoa(*((struct in_addr *)&ip->daddr));
      printf("%s --->  %s\n",src, des);
j'ai toujours l'adresse source identique à l'adresse destination.
savez-vous pourquoi ??

merci d'avance!