Оформил: 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. |