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 Discussion :

Récupérer l'adresse IP du client [Débuter]


Sujet :

Réseau

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 12
    Par défaut Récupérer l'adresse IP du client
    Bonjour à tous, j'ai encore besoin de votre aide. Cette fois ça serait pour récupérer l'adresse IP locale du client sur lequel tourne mon application.

    J'ai fait quelques recherches, j'utilise évidemment le module QtNetwork. Voici ce que j'ai essayé:

    1ère méthode, lister toute les interfaces et toute les adresses IP:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    QList <QNetworkInterface> INTERFACES = QNetworkInterface::allInterfaces(); // Lister toute les interfaces
     
    for(int i=0;i<INTERFACES.size();i++) // Parcourir toute les interfaces
    {
        ui->textEdit->append("Interface n°"+QString::number(i));    // Afficher le rang de l'interface dans la QList
        QList <QHostAddress> IP = INTERFACES[i].allAddresses(); // Lister toute les IP de cette interface
        for(int j=0;j<IP.size();j++)    // Parcourir toute les IP de l'interface
            ui->textEdit->append(IP[j].toString()); // Les afficher une à une
        ui->textEdit->append("");   // Sauter une ligne entre chaque interface
    }
    Problème: à chaque fois j'ai la même interface qui apparait (même @IP locale, même @MAC...)

    Deuxième méthode, créer un socket et en extraire l’adresse locale:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Socket->connectToHost("www.google.fr",80);  // Se connecter à google (choix arbitraire)
    ui->textEdit_Log->append(Socket->localAddress().toString());    // Récupérer l'adresse IP locale
    Socket->disconnectFromHost();   // Se déconnecter
    Problème: c'est l'adresse 127.0.0.1 qui m'est retournée

    Donc voilà si vous voyez ce que je fais de mal merci de m'aider

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 12
    Par défaut
    Bonjour à tous,

    On m'a proposé ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    foreach (const QHostAddress &address, QNetworkInterface::allAddresses()) {
        if (address.protocol() == QAbstractSocket::IPv4Protocol && address != QHostAddress(QHostAddress::LocalHost))
             qDebug() << address.toString();
    }
    Il marche très bien mais parfois j'obtiens en plus de mon adresse IP une adresse en "169.XXX.XXX.XXX" et j'aimerais la supprimer savez vous quelle condition je pourrais ajouter dans le if() pour que ce type d'adresse ne soit pas prise en compte?

    EDIT: Résolu grâce à un regex, merci quand même

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

Discussions similaires

  1. comment récupérer l'adresse IP du client
    Par tito19 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 15/01/2010, 08h46
  2. Réponses: 2
    Dernier message: 05/01/2009, 17h12
  3. Comment récupérer l'adresse ip du client en PHP ?
    Par od.dev dans le forum Langage
    Réponses: 2
    Dernier message: 09/04/2008, 18h43
  4. Comment récupérer l'adresse IP du client ?
    Par 21247692 dans le forum Bases de données
    Réponses: 3
    Dernier message: 23/09/2007, 12h00
  5. Récupérer l'adresse IP du client en DCOM
    Par onionichan dans le forum Visual C++
    Réponses: 1
    Dernier message: 08/11/2006, 10h48

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