@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-адрес компьютера.