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