Получение IP-адреса
Оформил: DeeCo
Автор: CyANiD
От
автора: IP можно получить, заUSE'ав компонент TClientSocket или
TServerSocket, но это значительно утяжелит ваш Exe'шник. Я предлагаю
другой, более рациональный способ
Host: TLabel;
IPaddr: TLabel;
...
uses Winsock;
...
procedure TForm1.FormCreate(Sender: TObject);
var
wVerReq: WORD;
wsaData: TWSAData;
i: pchar;
h: PHostEnt;
c: array[0..128] of char;
begin
wVerReq := MAKEWORD(1, 1);
WSAStartup(wVerReq, wsaData);
{Получаем хост (имя) компа}
GetHostName(@c, 128);
h := GetHostByName(@c);
Host.Caption := h^.h_Name; //Host отображает хост(имя) компьютера
{Достаем IP}
i := iNet_ntoa(PInAddr(h^.h_addr_list^)^);
IPaddr.Caption := i; //Теперь IPaddr отображает IP-адрес
WSACleanup;
end;
Если
какие баги лезут, присылайте ваш проект (без Exe) нам с описанием вашей системы,
Delphi и конфигурации. Может у вас вообще баги с Windows
Sockets.
|