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

R�cup�rer adresse IP externe


Sujet :

C++Builder

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    162
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 162
    Par d�faut R�cup�rer adresse IP externe
    Bonjour !
    Je voudrais savoir si il y a un moyen de r�cup�rer mon adresse IP externe (wan) en c++ ou avec un composant Builder ?

    J'ai cette m�thode pour r�cup mon adresse LAN
    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
    AnsiString TForm1::AfficheIP(void)
    {
      struct sockaddr_in sin;
      struct hostent * phe;
      char FAR buffer[64] ;
     
      // Initialisation du service WSA
      WORD wVersionRequested;
      WSADATA wsaData;
      int err;
      wVersionRequested = MAKEWORD(1, 1);
      err = WSAStartup(wVersionRequested, &wsaData);
      if (err != 0)
      {
        return "Impossible de trouver winsock.dll";
      }
     
      // Récupération du nom de la machine
      gethostname(buffer, sizeof(buffer));
     
      // Récupération de la liste d'ips associées à la machine
      phe = gethostbyname(buffer);
      if(phe==NULL)
      {
        return "Erreur : pointeur nul";
       // WSACleanup();
     
      }
     
      // Enumération des adresses
      int I = 0 ;
      while((phe->h_addr_list[I+1])!=NULL)
      {
        I++;
      }
      memcpy(&sin.sin_addr.s_addr, phe->h_addr_list[I], phe->h_length);
     
      AnsiString IP = buffer;
      IP =IP + "/";
      IP =IP + inet_ntoa(sin.sin_addr) ;
     
      return IP ;
     
     //WSACleanup();
     
    }

  2. #2
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    D�tails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par d�faut
    Wow je viens juste de d�couvrir la variable globale GStack utilis� par Indy.

    Pour connaitre ton adresse IP locale il suffit de faire:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    String MyIP = GStack->LocalAddress;
    Pour plus de d�tail tu peux aller voir la FAQ Delphi.

    Pour conna�tre l'IP externe, d'apr�s moi il va falloir envoyer qqchose et regarder ce qui nous reviens. Dans les exemples sur le site d'Indy il y en a un qui se nomme Traceroute. C'est dans le download de la section Indy 9: http://www.indyproject.org/Sockets/Demos

Discussions similaires

  1. R�cup�rer adresse erronn�e + envoi par mail
    Par Cid67 dans le forum G�n�ral JavaScript
    R�ponses: 3
    Dernier message: 10/04/2006, 11h17
  2. r�cup�rer adresse ip
    Par mussara dans le forum Langage
    R�ponses: 3
    Dernier message: 05/04/2006, 10h56
  3. R�cup�rer adresse IP client avec Internet Explorer
    Par samyrentier dans le forum G�n�ral JavaScript
    R�ponses: 6
    Dernier message: 24/03/2006, 16h41
  4. r�cup�rer des donn�es externes ?
    Par yos dans le forum XML/XSL et SOAP
    R�ponses: 4
    Dernier message: 13/02/2006, 15h16
  5. [CF][C#] Comment r�cup�rer adresse Mac d'un PPC ?
    Par JBernn dans le forum Windows Mobile
    R�ponses: 18
    Dernier message: 12/01/2006, 18h14

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