@nicolette.stoltenberg
Здравствуйте!
Есть много способов получения IP вплоть до чтения его с адаптера на низком уровне, однако это все грамоздко и трудозатратно.
Есть простой способ узнать IP использовав инди компоненты.
Кидаете на форму компонент TIdIPWatch и пишете следующий код в обработчик клика кнопки:
1 2 3 4 |
procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage(IdIPWatch1.LocalIP); //Вы водит локальный IP адрес end; |
@nicolette.stoltenberg
В Delphi можно получить IP-адреса следующим образом:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
uses Winsock; function GetIPAddress: String; var HostEnt: PHostEnt; WSAData: TWSAData; Buf: array [0..127] of AnsiChar; begin WSAStartup(MAKEWORD(1,1), WSAData); try GetHostName(Buf, SizeOf(Buf)); HostEnt := GetHostByName(Buf); if Assigned(HostEnt) then Result := StrPas(inet_ntoa(PInAddr(HostEnt^.h_addr_list^)^)) else Result := ''; finally WSACleanup; end; end; |
1 2 3 4 5 6 |
uses IdStack; function GetIPAddress: String; begin Result := GStack.LocalAddress; end; |
Оба метода возвращают локальный IP-адрес компьютера.