Ir ao topo

Tecnobyte

Logomarca da Tecnobyte
Contato por WhatsApp

WhatsApp

(69) 3421-6756

Contato por Telefone

(69) 3421-6756

(69) 3421-6757

Enviar mensagem

Enviar

mensagem

Contato por Facebook

Facebook

Atendimento de segunda a sexta, das 08h00 às 19h00 (horário de Brasília).

Delphi - Comunicação e Internet

Como obter o endereço IP do computador local via programação?

Banner

A função GetLocalIP mostrada a seguir pode retornar o endereço IP do primeiro adaptador de rede ou uma lista com os endereços IP de todos os adaptadores de rede ativos.

  • Inclua na seção uses: WinSock
  • Coloque esta função abaixo da palavra implementation de seu código-fonte.
function GetLocalIP(const ASeparator: string = ''): string;
type
  TInAddrList = array[0..0] of PInAddr;
  PInAddrList = ^TInAddrList;
var
  HostEnt: PHostEnt;
  InAddrList: PInAddrList;
  Buffer: array[0..63] of AnsiChar;
  I: Integer;
  GInitData: TWSADATA;
begin
  Result := '';
  WSAStartup($101, GInitData);
  try
    GetHostName(Buffer, SizeOf(Buffer));
    HostEnt := GetHostByName(Buffer);
    if Assigned(HostEnt) then
    begin
      InAddrList := PInAddrList(HostEnt^.h_addr_list);
      I := 0;
      while InAddrList[I] <> nil do
      begin
        if Result <> '' then
          Result := Result + ',';
        Result := Result + StrPas(inet_ntoa(InAddrList[I]^));
        if ASeparator = '' then
          Exit;
        Inc(I);
      end;
    end;
  finally
    WSACleanup;
  end;
end;

Para testar...

  • Inclua na seção uses: Dialogs
  • Coloque um botão no formulário.
  • Programe o evento OnClick do botão como abaixo.
procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage('Endereço IP'#13#13 +
    'Primeiro: ' + GetLocalIP + #13 +
    'Todos: ' + GetLocalIP(','));
end;

O conteúdo desta página pode ajudar alguém? Compartilhe!