sniiiiffffffffff
j'ai fait un sniffer assez basique avec la librairie pcap ...
Jusqu'à la pas de soucis car je récupère effectivement les paquets de l'interface
Le problème est venu quand j'ai voulu un peu poussé mon sniffer dans ses limites et j'ai telechargé un iso (reseau local) donc mes débits avoisinent le 4Mo/s et la .... mon fichier de log faisait seulement 20 Mo
donc je me suis dit que ma boucle de sniffage était trop lente et j'ai supprimé tout le traitement à l'interieur et j'ai juste affiché la taille cumulé des paquets qui transitaient ... au final 30Mo
Donc a priori je drop pas mal de paquet ...

voila un extrait de mon code :
if ((fp= pcap_open(d->name,65536,PCAP_OPENFLAG_PROMISCUOUS, 1000 ,NULL,errbuf)) == NULL){
// TODO : Faire un message d'erreur !
} else {
//----------------------------------------
// Preparation du sniffage
//----------------------------------------
// On efface le fichier de log
pfile = fopen("C:/Log.txt", "w") ;
fwrite("",sizeof(char),1,pfile) ;
fclose(pfile) ;
// on prepare la liste des paquets
LPaquet = new Paquet() ;
// On efface la listView
ListView_DeleteAllItems(hWndTab1_List);
//----------------------------------------
// Début du sniffage
//----------------------------------------
while((res=pcap_next_ex(fp,&header,(const u_char**) &pkt_data))>= 0){
if(res != 0) { // le timeout n'est pas arrivé
size = header->caplen ;
total_size += size ;
//----------------------------------------
// On sauve le paquet dans un fichier
//----------------------------------------
pfile = fopen("C:/Log.txt", "a+b") ;
fwrite((char*) pkt_data,sizeof(char),size,pfile) ;
fclose(pfile) ;
//--------------------------------------
// On ecrit les Infos lié aux paquets a
// l'ecran
//--------------------------------------
// Ici il y a le code d'affichage
}
}
Si quelqu'un a une idée ...
avec ethereal ca marche parfaitement mais il va sans dire que je m'en sors pas avec la lecture du code ... je comprend rien !
Donc il doit y avoir une astuce que je n'ai pas saisi

merci de votre aide
Kikx
