How do I get the local internet machine name and IP address?
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:
Memo .Lines.Add(TCP .LocalHostName);
Memo .Lines.Add(TCP .LocalIp);
If you prefer not to use the TCP component, here is an example that interfaces directly with your winsock layer:
uses Winsock;procedure TForm .FormCreate(Sender: TObject);
var
wVersionRequested : WORD;
wsaData : TWSAData;
begin
{Start up WinSock}
wVersionRequested := MAKEWORD( , );
WSAStartup(wVersionRequested, wsaData);
end;
procedure TForm .Button Click(Sender: TObject);
var
p : PHostEnt;
s : array[0.. 28] of char;
p2 : pchar;
begin
{Get the computer name}
GetHostName(@s, 28);
p := GetHostByName(@s);
Memo .Lines.Add(p^.h_Name);
{Get the IpAddress}
p2 := iNet_ntoa(PInAddr(p^.h_addr_list^)^);
Memo .Lines.Add(p2);
end;
procedure TForm .FormDestroy(Sender: TObject);
begin
{Shut down WinSock}
WSACleanup;
end;