1 2 //--------------------------------------------------------------------------- 3 4 5 #include <winsock.h> 6 #include <vcl.h> 7 #pragma hdrstop 8 9 #include "Unit1.h" 10 //--------------------------------------------------------------------------- 11 #pragma package(smart_init) 12 #pragma resource "*.dfm" 13 TForm1 *Form1; 14 //--------------------------------------------------------------------------- 15 __fastcall TForm1::TForm1(TComponent* Owner) 16 : TForm(Owner) 17 { 18 } 19 //--------------------------------------------------------------------------- 20 AnsiString __fastcall TForm1::GetIPAddr ( AnsiString &Addr ) 21 { 22 AnsiString ipAddress = "NOT FOUND!"; 23 WSAData wsaData; 24 if (WSAStartup(MAKEWORD(1,1), &wsaData) == 0) 25 { 26 char ac[80]; 27 if (gethostname(ac, sizeof(ac)) != SOCKET_ERROR) 28 { 29 struct hostent * phe = gethostbyname(ac); 30 if (phe != 0) 31 { 32 int i; 33 struct in_addr addr; 34 for (i=0; phe->h_addr_list[i] != 0; i++) 35 { 36 memcpy(&addr, phe->h_addr_list[i], sizeof(struct in_addr)); 37 if (i > 0) 38 Addr = Addr + "."; 39 Addr = Addr + inet_ntoa(addr); 40 } 41 } 42 } 43 } 44 else{ 45 ipAddress= Addr; 46 return ipAddress; 47 } 48 WSACleanup(); 49 50 } 51 52 void __fastcall TForm1::Button1Click(TObject *Sender) 53 { AnsiString IPaddress; 54 55 GetIPAddr(IPaddress); 56 ShowMessage(IPaddress); 57 } 58 //---------------------------------------------------------------------------