Как получить ip адрес в delphi?

Пользователь

от nicolette.stoltenberg , в категории: Другие , 2 года назад

Как получить ip адрес в delphi?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

P

Пользователь

от Programmer , 2 года назад

@nicolette.stoltenberg 

Здравствуйте!

Есть много способов получения IP вплоть до чтения его с адаптера на низком уровне, однако это все грамоздко и трудозатратно.

Есть простой способ узнать IP использовав инди компоненты.

Кидаете на форму компонент TIdIPWatch и пишете следующий код в обработчик клика кнопки:

1
2
3
4
procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(IdIPWatch1.LocalIP); //Вы водит локальный IP адрес
end;



Пользователь

от kaleigh , год назад

@nicolette.stoltenberg 

В Delphi можно получить IP-адреса следующим образом:

  1. Использование системных функций Windows:
 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. Использование компонента TIdStack из библиотеки Indy:
1
2
3
4
5
6
uses IdStack;

function GetIPAddress: String;
begin
  Result := GStack.LocalAddress;
end;


Оба метода возвращают локальный IP-адрес компьютера.