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

C++ Discussion :

Récupérer l'adresse IP de la machine


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 82
    Par défaut Récupérer l'adresse IP de la machine
    Bonjour,

    La méthode gethostname -> gethostbyname -> h_addr_list me retourne 127.0.0.1 sous linux uniquement.

    Existe-t-il un méthode alternative et opérationnelle sous linux sans passer par une ligne de commande et un parse de /sbin/ifconfig.

    Merci d'avance.

  2. #2
    Invité
    Invité(e)
    Par défaut
    J'avais dela poste un bout de code qui le faisait sur ce forum. Une petite recherche devrait te permettre de le retracer.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 82
    Par défaut
    Justement j'ai rien trouvé à ce sujet.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Peut-etre a-t'il ete efface.. Je le reposte, en esperant que cela puisse etre utile:

    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
    #include <stdio.h>
    #include <net/if.h>
    #include <netinet/in.h>
    #include <sys/ioctl.h> // ioctl
    #include <string.h> // strcpy, memset
    #include <unistd.h> // close
     
    void ShowLocalIp(const char *iface)
    {
        int fd;
        struct ifreq ifr;
        unsigned char *addr;
     
        fd = socket(AF_INET, SOCK_DGRAM, IPPROTO_IP);
        memset(&ifr, 0, sizeof(struct ifreq));
        strcpy(ifr.ifr_name, iface);
        ifr.ifr_addr.sa_family = AF_INET;
        ioctl(fd, SIOCGIFADDR, &ifr);
        addr = (unsigned char *) & (((struct sockaddr_in *) &ifr.ifr_addr)->sin_addr);
     
        printf("%u.%u.%u.%u\n", addr[0], addr[1] ,addr[2], addr[3]);
     
        close(fd);
    }
     
    int main()
    {
        ShowLocalIp("eth0");
        return 0;
    }

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 82
    Par défaut
    Ok merci ca marche correctement. Par contre, l'argument "eth0" n'est pas 'automatique'. Enfin, on peut pas tout a voir.... ;-)

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bien sur que c'est pas "automatique". Faut quand meme que tu sache l'adresse ip de quelle interface tu veux...

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 82
    Par défaut
    Par exemple, libpcap pourrait permettre de lister les interfaces et de réaliser un choix automatique par défaut mais cela est contraingant (install root)... je vais étudier la question

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 11/04/2011, 14h05
  2. [Système] Récupérer l'adresse MAC de la machine
    Par la.musaraigne dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 27/01/2011, 14h08
  3. récupérer l'adresse IP d'une machine qui se connecte en Wifi
    Par ryadh.naouar dans le forum Développement
    Réponses: 2
    Dernier message: 07/08/2007, 15h11
  4. Réponses: 2
    Dernier message: 26/12/2005, 00h38
  5. [Ada 95] Récupérer l'adresse MAC de la machine
    Par kindool dans le forum Ada
    Réponses: 3
    Dernier message: 26/05/2005, 15h49

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