IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau C Discussion :

Libpcap et adresse Mac


Sujet :

Réseau C

  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    273
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2007
    Messages : 273
    Par défaut Libpcap et adresse Mac
    Bonjour tout le monde!!

    J'aimerais mettre au point un petit logiciel qui permettrait de lister toutes les adresses IP et adresse Mac d'ordinateur connectés à un point d'accès wifi.
    Tout ce qui me "manque" c'est de trouver comment récupérer les adresses Mac contenue dans les trames. J'ai lu deux trois topic sur le sujet, mais rien de bien intéressant à par de récupérer les octets correspondant. Mais je me demande si Libpcap ou une autre librairie genr libnids ou libnet n'aurait pas une fonction qui permettrai de les avoir directement.

    Si vous avez des idées je suis preneur. Merci.

  2. #2
    Membre émérite Avatar de homeostasie
    Homme Profil pro
    Inscrit en
    Mai 2005
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 939
    Par défaut
    A mons avis il te faudra implémenter toi même une requete arp afin de connaître l'adresse mac correspondant à l'adresse ip de destination.

    Pour cela tu te crées l'entête mac et arp avec une structure, par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    struct mac
                {
                unsigned char               destination[6];
                unsigned char               source[6];
                unsigned short              type;
                };
     
    struct arp
                {
                unsigned short              mac_type;
                unsigned short              protocol_type;
                unsigned char               mac_taille;
                unsigned char               protocol_taille;
                unsigned short              opocode;
                unsigned char               mac_source[6];
                unsigned long                ip_source;
                unsigned char               mac_destination[6];
                unsigned long                ip_destination;
                };
    Tu remplis les champs correspondants.
    Ensuite tu encapsules/concatènes ces deux couches afin de former le paquet à envoyer.
    Pour envoyer et receptionner les paquets, tu peux t'appuyer sur la bibliotheque libpcap:
    -pcap_open_live()
    -pcap_sendpacket()
    -pcap_next_ex()
    -pcap_close()
    Enfin à toi de vérifier l'intégralité du paquet reçu et d'extraire l'adresse MAC.


  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    273
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2007
    Messages : 273
    Par défaut
    Ca fait quand même assez lourd, j'ai chercher à droite à gauche et j'ai trouvé une structure qui le fait : struct etherhdr
    Je crois qu'elle fait partie de la librairie libnet. mais j'en suis pas encore sûr.

    pour l'utilisation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    struct etherhdr * EtherHdr;
     
    EtherHdr = (struct etherhdr) paquet;
    Je vous tiendrez au courant si ca marche bien ou pas.

  4. #4
    Membre émérite Avatar de homeostasie
    Homme Profil pro
    Inscrit en
    Mai 2005
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 939
    Par défaut
    Citation Envoyé par danathane Voir le message
    Ca fait quand même assez lourd, j'ai chercher à droite à gauche et j'ai trouvé une structure qui le fait : struct etherhdr
    Je crois qu'elle fait partie de la librairie libnet. mais j'en suis pas encore sûr.

    pour l'utilisation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    struct etherhdr * EtherHdr;
     
    EtherHdr = (struct etherhdr) paquet;
    En ce qui concerne l'utilisation je suis d'accord, il en est de même avec les structures que je t'ai fourni plus haut.
    Je pense que ta structure "etherhdr" correspond à la structure "mac". Donc ok tu vas extraire l'entête ethernet mais à quoi correspond le paquet? Requête/Réponse ICMP? Reqête/Réponse ARP? etc... Il faut que tu sois sûr que la paquet provienne bien de l'adresse MAC que tu souhaites obtenir.

    Peut être que tu pourras trouver une bibibliothéque s'appuyant sur libpcap ou autres qui mets en oeuvre ce processus (Emission d'une requete ARP sur l'ip désirée puis réception et extraction de l'information dans la réponse ARP), sinon à toi de te lançer!

  5. #5
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    273
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2007
    Messages : 273
    Par défaut
    Alors pour mon soft, j'aurais en entrée un fichier pcap qui aura été capturé pour un point d'accès (hotspot par exemple). Le but du soft et de me sortir toutes les adresses Mac et IP des stations connectées à l'AP. Pour ce faire il faut connaitre l'adresse Mac de l'AP. Or chaque AP a un BSSID qui pourrait être son adresse MAC mais ca n'est pas le cas. Donc pour la trouver, il faut faire des comparaison d'adresse MAC et ainsi de suite.
    Le code que j'ai donné plus haut permet d'extraire les adresses MAC des paquets.

Discussions similaires

  1. Obtenir l'adresse mac de sa carte reseau
    Par kivoch dans le forum C++Builder
    Réponses: 4
    Dernier message: 19/11/2009, 18h30
  2. recuperer adresse MAC d'un pc sur un reseau local
    Par LineLe dans le forum Développement
    Réponses: 3
    Dernier message: 25/03/2005, 16h37
  3. Réponses: 5
    Dernier message: 25/03/2003, 17h27
  4. Comment récupérer une adresse MAC ?
    Par psau dans le forum Développement
    Réponses: 7
    Dernier message: 19/07/2002, 17h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo