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

Linux Discussion :

récupérer l'addresse MAC d'une interface Wifi


Sujet :

Linux

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2005
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 100
    Points : 49
    Points
    49
    Par défaut récupérer l'addresse MAC d'une interface Wifi
    Bonjour

    Comment recupere l'addresse MAC d'une interface wifi

    Y-a-t-il une bibliotheque C qui permet de resoudre mon probleme?

    Tout commentaire est le bienvenu

  2. #2
    Membre émérite Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Points : 2 280
    Points
    2 280
    Par défaut
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    #include <sys/ioctl.h>
    #include <net/if.h>
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
     
    char *get_mac_address (char const *iface);
     
    int main (void)
    {
       char *address = get_mac_address ("eth1");
       if (address != NULL)
       {
          puts (address);
          free (address), address = NULL;
       }
       return EXIT_SUCCESS;
    }
     
    char *get_mac_address (char const *iface)
    {
       char *hwaddr = calloc (18, sizeof *hwaddr);
       if (hwaddr != NULL)
       {
          int fd = socket (AF_INET, SOCK_DGRAM, 0);
          if (fd != -1)
          {
             struct ifreq ifr;
             strncpy (ifr.ifr_name, iface, IFNAMSIZ);
     
             if (ioctl (fd, SIOCGIFFLAGS, &ifr) == 0)
             {
                if (ioctl (fd, SIOCGIFHWADDR, &ifr) == 0)
                {
                   char buf[8];
                   memcpy (buf, ifr.ifr_hwaddr.sa_data, 8);
     
                   snprintf (hwaddr, 18, "%02X:%02X:%02X:%02X:%02X:%02X",
                             (buf[0] & 0xFF), (buf[1] & 0xFF), (buf[2] & 0xFF),
                             (buf[3] & 0xFF), (buf[4] & 0xFF), (buf[5] & 0xFF));
                }
                else
                {
                   perror ("ioctl(SIOCGIFHWADDR)");
                }
             }
             else
             {
                perror ("ioctl(SIOCGIFFLAGS)");
             }
          }
          else
          {
             perror ("socket() error");
          }
       }
       return hwaddr;
    }

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/04/2015, 19h26
  2. Récupérer un double à partir d'une interface
    Par boubounagh dans le forum Interfaces Graphiques en Java
    Réponses: 4
    Dernier message: 05/04/2012, 21h39
  3. Réponses: 13
    Dernier message: 04/04/2011, 15h06
  4. [IHM] Réaliser une interface graphique sur mac
    Par fjgaston dans le forum Développement OS X
    Réponses: 7
    Dernier message: 25/06/2007, 14h54
  5. Réponses: 4
    Dernier message: 13/09/2006, 16h02

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