begin process at 2008 08 20 17:16:15
1 228 954 membres
315 nouveaux aujourd'hui
14 259 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Win Pcap / Sniffer / Pb de vitesse [ Archives / Réseau / Internet ] (Kikx)

Win Pcap / Sniffer / Pb de vitesse le 11/01/2005 20:35:41

Kikx
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


Re : Win Pcap / Sniffer / Pb de vitesse le 11/01/2005 21:38:45

Kikx
Bon ben ...
snif personne m'aime :(
je vais suicider mon ordinateur ...
Voila de nouveaux test pour les interessés
Si je désactive tout ... j'ai l'impresssion de chopper tout les paquets ... mais bon j'ai aucun traitement dans la boucle alors c'est un peu lourd :(

Kikx


Re : Win Pcap / Sniffer / Pb de vitesse le 11/11/2005 22:44:54

dark1933

Salut,

Juste pour vérifer, j'aimerai bien voir la définition de la structure de header


Re : Win Pcap / Sniffer / Pb de vitesse le 11/11/2005 22:45:36

dark1933

caplen c'est la taille de quoi?


Re : Win Pcap / Sniffer / Pb de vitesse le 03/07/2006 18:14:24

psyphi
J'arrive un peu tard mais si tu drops tout ces paquets c'est parce que ta boucle de traitement est trop longue. Au lieu de tout faire en un seul jet, appele le traitement dans un autre thread en parallère.

There are only 10 types of people in the world: Those who understand binary, and those who don't.


Classé sous : char, size, sniffer, pfile, pcap

Participer à cet échange

Pub



Appels d'offres

Recherche developpeur ...
Budget : 700€
campagne Adwords
Budget : 5 000€
Boite echanges securis...
Budget : 500€

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS