salut tout le monde bon voila, j'ai écrit un programme en C sous windows pour faire la capture de paquet avec les fonctions de PACKET32.h :
Code :
- if (PacketReceivePacket(adapter, packet, TRUE)==FALSE)
- {
- printf(" erreur de PacketReceivePacket" );
- PacketFreePacket(packet);
- free(buffer);
- return -1;
- }
- ulBytesReceived = packet->ulBytesReceived;
- afficher_packet((char*)packet, 42);
- ofst=0;
- buf=packet->Buffer;
- printf("données reçus=%i \n",(packet->ulBytesReceived));
- /* Traitement de chaque trame */
- while (ofst < packet->ulBytesReceived)
- {
- printf("TRAITEMENT\n" );
-
- /*la suite du traitement.......*/
- }
|
bon voila mon programme reçoit des paquets (il passe le premier IF) et quand il arrive au traitement il n'accède pas a la boucle WHILE. et a l'affichage j'ai :
le paquet:
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 48 00 80 0F 00 E8 03 00 ........H....è..
00 00 00 00 00 00 00 00 70 00 ........p.
données reçus=0 .
C'est bizarre car en lançant un sniffer à-côté, ma machine reçoit vraiment des paquets, que mon sniffer les voit comme des paquets vide
bref si quelqu'un peut m'éclairer car la je suis vraiment perdu.
MERCI
---------------
Vive LINUX