Utilisation de PCAP dans VC++6 sous XP

Signaler
Messages postés
5
Date d'inscription
mercredi 14 janvier 2004
Statut
Membre
Dernière intervention
28 mars 2004
-
 Utilisateur anonyme -
Aprés deux bonnes semaines de galére dans mon coin....
J'en viens sur le forum, pour chercher de l'aide, sur l'utilisation de la librairie PCAP !!!
Le but est de créer un snifer réseau, qui s'orientera sur des stats concernant les emails émis !!
J'ai téléchargé les sources pcap en version 3.0 et j'ai intégré les .h notamment, dans le répertoire /include de VC6
J'ai trouvé des sources pour récupérer l'ensemble des trames, bien que plus tard, je ne filtrerai que les port 110.
J'ai malheureusement des erreurs à la compil de l'exe, sur l'utilisation de la synthaxe de pcap, à savoir:
main.obj : error LNK2001: unresolved external symbol __imp__ntohs@4
main.obj : error LNK2001: unresolved external symbol __imp__htons@4
main.obj : error LNK2001: unresolved external symbol _pcap_close
main.obj : error LNK2001: unresolved external symbol _pcap_loop
main.obj : error LNK2001: unresolved external symbol _pcap_setfilter
main.obj : error LNK2001: unresolved external symbol _pcap_compile
main.obj : error LNK2001: unresolved external symbol _pcap_open_live
main.obj : error LNK2001: unresolved external symbol _pcap_findalldevs
Debug/main.exe : fatal error LNK1120: 8 unresolved externals
--Je ne pensais vraiment pas buter, la dessus, étant donné que ceux sont les symbol de commande de la librairie pcap....
--Je n'ai pas d'erreur d'appel de #include <> et je pense que j'ai du louper autre chose, mais j'ignore vraiment quoi !!!
--Si quelqu'un a déjà rencontré ce pb, merci d'éclairer ma lanterne, car en ce moment elle est plus trop brillante !!
fred

10 réponses

Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
c'est un problème de librairies

essaie d'ajouter
pragma comment(lib, "nom_de_la_lib.lib")
au début du fichier
Messages postés
5
Date d'inscription
mercredi 14 janvier 2004
Statut
Membre
Dernière intervention
28 mars 2004

Bon j'ai testé dans le forum, une astuce et j'arrive à:
Linking...
main.obj : error LNK2001: unresolved external symbol __imp__ntohs@4
main.obj : error LNK2001: unresolved external symbol __imp__htons@4
Debug/main.exe : fatal error LNK1120: 2 unresolved externals
--------------------------
Le IMP_ntohs me donne encore du fil à retordre !!
fred
arrghhh

Voici les includes et libs à prendre en compte :
#include <winsock2.h>
#pragma comment(lib,"ws2_32.lib")

#include 
#pragma comment(lib,"wpcap.lib")


Si tu connais les raws sockets tu px aussi sniffer les paquets sortants avec eux. Mais seulement aprés avoir instalé la libpcap.

vbnul
Messages postés
5
Date d'inscription
mercredi 14 janvier 2004
Statut
Membre
Dernière intervention
28 mars 2004

OK et merci..
je vais faire un test, mais normalement j'avais déjà inclus ces librairies !!!
Ce qui m'intéresse c'est juste les paquets rentrants et je m'oriente plus sur du pcap, sans utiliser les raw socket !!!
Le code est moins lisible, mais bon !!!

PCAP est nouveau pour moi, et je dois avouer que je pensais pas avoir autant de problème pour l'intégrer dans mon environnement !!
arrghhh !!!
amicalement fred

Pourquoi utiliser la libpcap si tu t'interresse seulement aux paquets entrants ?
Tes applis seraient + portables avec les raws...

vbnul
Messages postés
5
Date d'inscription
mercredi 14 janvier 2004
Statut
Membre
Dernière intervention
28 mars 2004

Tout à fait, tu as entiérement raison !!!
Aprés plusieurs test, c'est le raw socket, qui me semble le plus approprié !!!
fred
Messages postés
475
Date d'inscription
vendredi 27 juin 2003
Statut
Membre
Dernière intervention
20 septembre 2010

Excusez moi vous parlez de paquets rentrant, j'y connais pas grand chose mais est-ce que ca pourrait servir pour connaitre l'utilisation de ma connexion internet?

Aidez moi silvouplais, je voudrais pouvoir connaitre le pourcentage d'utilisation de ma connexion internet (comme avec Ctrl+Alt+Sup sous winXP) en temps réel a partir d'un prog C++ .

Merci d'avance !

Je ne pense pas que cela soit réellement possible mais tu px tjs essayer de sniffer tts les paquets entrants pendant x secondes.
Tu calcules ensuite leur taille totale, la divise par (x*tacapacitédereception) et multiplies en suite par 100 : t'obtiens le poucentage de l'occupation de ta bande passante.
Ensuite tu px aussi faire pareil pour l'envoi.

Mais c'est pas exact, les raws sockets ne captent pas tout, la libpcap peut etre...
De toute manière je te recommande de chercher l'information du coté d'APIs windows qui donneraient ce service plutot que d'utiliser ma 'bidouille".

vbnul
Messages postés
475
Date d'inscription
vendredi 27 juin 2003
Statut
Membre
Dernière intervention
20 septembre 2010

Ya pas besoin que ce soit précis.
Mais j'y connais rien aux sockets ta pas une source ou tu peux pas m'aider?

Merci!

Va voir sur mon site et sur freecodz, j'ai déjà fait pas mal de doc sur les sockets.

vbnul