Borland C++ Builder FAQ - Получение IP-адреса локальной машины

ОГЛАВЛЕНИЕ


Получение IP-адреса локальной машины

// напишите следующуй код:
#include <winsock.h>
#include <stdio.h>

void __fastcall TForm1::Button1Click(TObject *Sender)
{
    WORD wVersionRequested;
    WSADATA wsaData;
    wVersionRequested = MAKEWORD(1, 0);
    int err = WSAStartup(wVersionRequested, &wsaData);
    if(err == 0)
    {
        char hn[1024];
        struct hostent *adr;
        if(gethostname((char *)&hn, 1024))
        {
            int err = WSAGetLastError();
            Beep();
        };
        adr = gethostbyname(hn);
        if(adr)
        {
          char *LocalIp = new char[15];
          sprintf(LocalIp,"%d.%d.%d.%d",
          (unsigned char)adr->h_addr_list[0][0],
          (unsigned char)adr->h_addr_list[0][1],
          (unsigned char)adr->h_addr_list[0][2],
          (unsigned char)adr->h_addr_list[0][3]);
          Label1->Caption=LocalIp; //Выводим IP адрес
        }
    }
}