Deimos_ | Bonsoir à toutes et à tous,
Voilà je programme un sniffer en C++ avec les Raw Socket. Seulement il doit y avoir un problême quelque part, car TOUS les champs du packet (entête ip, icmp) ont comme valeur "204" ...
ip source : 204.204.204.204, ip destination = 204.204.204.204, ttl = 204, tos = 204 Etc !
VOici le bout du code nécessaire pour m'aider :
Code :
- #define SIO_RCVALL _WSAIOW(IOC_VENDOR,1)
- DWORD dwBytesRet;
- unsigned int optval = 1;
- WSAIoctl( sock, SIO_RCVALL, &optval, sizeof(optval), NULL, 0, &dwBytesRet, NULL, NULL);
- char paquet[8192];
- HEADERIP* IP_HDR = (HEADERIP*)paquet;
- HEADERICMP* ICMP_HDR = (HEADERICMP*)(sizeof(HEADERIP)+paquet);
- while(!recv(socket,paquet,sizeof(paquet),0)) { }
- char source[16],dest[16],ttl[4],tos[4];
- strcpy(source,inet_ntoa(*(struct in_addr *)&IP_HDR->saddr));
- strcpy(dest,inet_ntoa(*(struct in_addr *)&IP_HDR->daddr));
- wsprintf(ttl,"%i",IP_HDR>ttl);
- wsprintf(tos,"%i",IP_HDR->tos);
- printf("IP Source : %s",source);
- printf("\nIp Destination : %s",dest);
- printf("\nTTL : %s",ttl);
- printf("\nToS : %s",tos);
|
Merci de m'aider, je galère vaiment trop avec cette erreur :s !
Bonne soirée ++ |