Internet
16.08.1999
  • Odczytywanie własnego numeru IP.

      Skorzystaj z poniższej funkcji:

 AnsiString TForm1::GetLocalIP(void)
{
 AnsiString retVal;
 WSAData wsaData;

  //inicjalizacja Windows Sockets DLL, zwraca 0 jeżeli sukces
 if(!WSAStartup(MAKEWORD(1,1),&wsaData))
 {
  char ac[80];
  //wpisuje do ac nazwę hosta
 if(gethostname(ac,sizeof(ac)) != SOCKET_ERROR) 
  
  {
   hostent *phe = gethostbyname(ac); //pobiera informację o hoście
   if(phe)
   {
    in_addr addr;
    for(int i = 0; phe->h_addr_list[i] != 0; ++i)
    {
     //kopiuje adres do zmiennej addr
     CopyMemory(&addr, phe->h_addr_list[i], sizeof(in_addr));
     if(i > 0)
         AppendStr(retVal, ".");
      //konwersja adresu do "normalej" postaci
      AppendStr(retVal, inet_ntoa(addr));
    }
   }
  }
 }
 WSACleanup();

 return retVal;
}



//-------------------------------------------------
//w nagłówku:
//-------------------------------------------------
#include <winsock.h>

public:
 AnsiString GetLocalIP(void);