15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


Как узнать интернет имя и IP адрес локального компьютера

Компилятор: C++ Builder

Для этого можно воспользоваться компонентом TCP. Поместите на форму компонент TCP из закладки internet и используйте следующие его члены:

  Memo1->Lines->Add(TCP1->LocalHostName);
  Memo1->Lines->Add(TCP1->LocalIp);

Если Вы не хотите использовать компонент TCP, то следующий пример показывает как получить нужную нам информацию напрямую из винсока:

#include <winsock.h>

void __fastcall TForm1::Button1Click(TObject *Sender)
{
    hostent *P;
    char s[128];
    in_addr in;
    char *P2;
    gethostname(s, 128);
    P = gethostbyname(s);
    Memo1->Lines->Add(P->h_name);
    in.S_un.S_un_b.s_b1 = P->h_addr_list[0][0];
    in.S_un.S_un_b.s_b2 = P->h_addr_list[0][1];
    in.S_un.S_un_b.s_b3 = P->h_addr_list[0][2];
    in.S_un.S_un_b.s_b4 = P->h_addr_list[0][3];
    P2 = inet_ntoa(in);
    Memo1->Lines->Add(P2);
}

void __fastcall TForm1::FormCreate(TObject *Sender)
{
    WORD wVersionRequested;
    WSADATA WSAData;
    wVersionRequested = MAKEWORD(1,1);
    WSAStartup(wVersionRequested,&WSAData);
}

void __fastcall TForm1::FormDestroy(TObject *Sender)
{
    WSACleanup();
}