...get the own IP Address?

Author: Simon Grossenbacher 

Homepage: http://www.swissdelphicenter.ch

0 Comments to this tip [Write new comment]

[ Print tip ]    

 

Tip Rating (87):  

Skill:  

Useful:  

Overall:  

 

 

 

uses

  Winsock;

 

{...}

 

function getIPs: Tstrings;

type

  TaPInAddr = array[0..10] of PInAddr;

  PaPInAddr = ^TaPInAddr;

var

  phe: PHostEnt;

  pptr: PaPInAddr;

  Buffer: array[0..63] of Char;

  I: Integer;

  GInitData: TWSAData;

begin

  WSAStartup($101, GInitData);

  Result := TstringList.Create;

  Result.Clear;

  GetHostName(Buffer, SizeOf(Buffer));

  phe := GetHostByName(buffer);

  if phe = nil then Exit;

  pPtr := PaPInAddr(phe^.h_addr_list);

  I    := 0;

  while pPtr^[I] <> nil do

  begin

    Result.Add(inet_ntoa(pptr^[I]^));

    Inc(I);

  end;

  WSACleanup;

end;

 

 

procedure TForm1.Button1Click(Sender: TObject);

begin

  Memo1.Lines := GetIps;

end;