[DELPHI] OBTER ENDEREÇO IP LOCAL VIA PROGRAMAÇÃO

//uses winSock

procedure TForm1.Button45Click(Sender: TObject);
begin
   ShowMessage('Primeiro Endereço IP: ' + IPLocal);
   ShowMessage('Todos os endereços de IP: ' + IPLocal(','));
end;

function TForm1.IPLocal(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;

Gostou? Deixe seu comentário... Convido você a seguir meu blog, sua presença é bem vinda!【ツ】

Nenhum comentário:

Postar um comentário