Getting the local internet machine name and IP address.

Question:

How do I get the local internet machine name and IP address?

Answer:

Getting the local machine name and IP address is a straight forward process that is most easily accomplished using the TCP component. Simply drop a TCP component from the internet page of the component palette on to a form, and access the following members of the TCP component:

  Memo1.Lines.Add(TCP1.LocalHostName);

  Memo1.Lines.Add(TCP1.LocalIp);

If you prefer not to use the TCP component, here is an example that interfaces directly with your winsock layer:

uses Winsock;

procedure TForm1.FormCreate(Sender: TObject);

var

  wVersionRequested : WORD;

  wsaData : TWSAData;

begin

 {Start up WinSock}

  wVersionRequested := MAKEWORD(1, 1);

  WSAStartup(wVersionRequested, wsaData);

end;

 

procedure TForm1.Button1Click(Sender: TObject);

var

  p : PHostEnt;

  s : array[0..128] of char;

  p2 : pchar;

begin

 {Get the computer name}

  GetHostName(@s, 128);

  p := GetHostByName(@s);

  Memo1.Lines.Add(p^.h_Name);

 {Get the IpAddress}

  p2 := iNet_ntoa(PInAddr(p^.h_addr_list^)^);

  Memo1.Lines.Add(p2);

end;

 

procedure TForm1.FormDestroy(Sender: TObject);

begin

 {Shut down WinSock}

  WSACleanup;

end;