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();
 
}