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.


Sujet :

C++

  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 134
    Par défaut Récupérer l'adresse IP.
    Bonjour a vous tous,

    je voulais savoir si il existe une fonction C++ permettant derécupérer l'adresse IP de l'utilisateur du programme.

    merci d'avance.
      0  0

  2. #2
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    Salut !

    tu récupères l'IP d'un machine... d'un sous-réseau, d'une passerlle, d'une entité réseau quoi... mais pas d'un utilisateur...

    tu pourrais expliquer ce que tu souhaites faire exactement ?
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)
      0  0

  3. #3
    Membre émérite
    Avatar de Interruption13h
    Inscrit en
    Août 2005
    Messages
    603
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 603
    Par défaut
    Salut !

    Esque t'as vu ça :
    http://c.developpez.com/faq/c/?page=reseau

    ?

    ++
      0  0

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 394
    Par défaut
    Ca serait bien de mettre un lien dans la FAQ C++ aussi. Parce que je la vois passer toutes les deux semaines cette question.
    Enfin, si tout le monde lisait la FAQ avant de poster...
      0  0

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 134
    Par défaut
    en fait ce que je souhaite faire c'est récupérerl'adresse ip de la personne qui lance mon programme afin de l'afficher sur ma form dans un label.

    mais meme le nom d'hote ne marche pas!

    voici le code utilisé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    char *hostname;
    gethostname(hostname, 100);
    lab_hostname->Text = hostname;
    d'apres la msdn, le premiers parametre a donner a la fonction est un pointeur vers un buffer qui va recevoir la nom d'hote, le 2eme parametre est la taille du buffer.

    en ce qui me concerne, je ne récupere rien avec cette méthode!!
      0  0

  6. #6
    Membre chevronné Avatar de Mayti4
    Inscrit en
    Février 2004
    Messages
    442
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 442
    Par défaut
    Citation Envoyé par poporiding
    d'apres la msdn, le premiers parametre a donner a la fonction est un
    pointeur vers un buffer qui va recevoir la nom d'hote, le 2eme
    parametre est la taille du buffer.
    Je vois nulle part dans ton code un buffer.

      0  0

  7. #7
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 134
    Par défaut
    meme avec ce code, il n'y a pas de changement!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    char hostname[100];
    gethostname(hostname, 100);
    lab_hostname->Text = hostname;
      0  0

  8. #8
    Membre chevronné Avatar de Mayti4
    Inscrit en
    Février 2004
    Messages
    442
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 442
    Par défaut
    On peut voir tout ton code ?

    Tu as initialisé Winsock ?

    Aussi, faut appeler gethostbyname, pour avoir l'IP à partir de l'host.
      0  0

  9. #9
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 134
    Par défaut
    tout mon code est la ... le tout est placé dans un bouton, et l'action se lance quand je click dessus.

    j'ai un bouton et un label

    j'ai des includes et des pragma:
    #include <Winsock2.h>

    #pragma comment(lib, "ws2_32.lib")
      0  0

  10. #10
    Membre chevronné Avatar de Mayti4
    Inscrit en
    Février 2004
    Messages
    442
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 442
    Par défaut
    lab_hostname->Text = hostname;
    Est-ce que tu affiches lab_hostname->Text au moins ?

    Je ne vois pas d'affichage...

    Il suffit de passer hostname à la fonction PrintIp qui est dans la FAQ.
      0  0

  11. #11
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 134
    Par défaut
    en fait le problème est que la fonction gethostname ne me retourne rien dans mon buffer, il reste vide.

    c'est pourquoi rien ne s'affiche.

    et le code lab_hostname->Text = "toto"; affiche toto sur le label et donc sur mon programme. Cependant ca ne marche pas avec mon hostname car je n'ai aucun retour de la fonction!
      0  0

  12. #12
    Membre chevronné Avatar de Mayti4
    Inscrit en
    Février 2004
    Messages
    442
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 442
    Par défaut
    Il faut initialiser Winsock avec WSAStartup.
      0  0

  13. #13
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 134
    Par défaut
    merci pour cette aide, j'arrive bien a voir le nom d'hote et les différentes IPs.

    Cependant je n'arrive pas a envoyer mes différentes ip dans une comboBox.

    Le problème vient de la convertion des données (impossible de convertir un char * en System::Object__gc *)

    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
     
    void PrintIp(char* HostName)
        {
            struct hostent *host;
            struct in_addr **adr;
     
            if((host = gethostbyname(HostName)) != NULL)
            {
                // parcourt des adresses IP
                for (adr=(struct in_addr **)host->h_addr_list; *adr; adr++)
                {
                    Form1::richTextBox_route->AppendText(inet_ntoa(**adr));
                    Form1::richTextBox_route->AppendText("\n");
    //le pb vient de la ligne suivante!
                  Form1::comboBox_IP->Items->Add(inet_ntoa(inet_ntoa(**adr));
                }
            }
            else
            {
                // echec de la resolution
                printf("Echec de la resolution de nom\n");
            }
        }
    comment fait on pour convertir ce genre de donnée char * en System ... ?

    en tous cas merci pour les liens, cela m'a bien aidé.
      0  0

  14. #14
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Merci de ne pas dupliquer les sujets sur un même problème.



    http://www.developpez.net/forums/sho...d.php?p=966231
      0  0

Discussion fermée
Cette discussion est résolue.

Discussions similaires

  1. [C#] Récupérer son adresse IP sur Internet
    Par Thomas Lebrun dans le forum Windows Forms
    Réponses: 11
    Dernier message: 28/07/2014, 16h19
  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. [MFC]récupérer l'adresse MAC
    Par julien20vt dans le forum MFC
    Réponses: 6
    Dernier message: 17/02/2004, 11h22
  4. Comment récupérer les adresses WWW dans Internet Explorer ?
    Par chaours dans le forum Web & réseau
    Réponses: 7
    Dernier message: 03/09/2003, 14h27
  5. 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