This procedure describes how to obtain the name and IP address of the local computer.
Add two Tlabel components, two tedit components, and a TButton component to the form.
First add a reference to Winsock in the uses section of your program, and then add a gethostname custom function that calls the GetComputerName function to get the computer name, and the response code is as follows:
function TfrmMain.GetHostName:String;
var
ComputerName: array[0..MAX_COMPUTERNAME_LENGTH+1] of char;
Size: Cardinal;
begin
result:='';
Size := MAX_COMPUTERNAME_LENGTH+1;
GetComputerName(ComputerName, Size);
Result:=StrPas(ComputerName);
end;
Add a Nametoip custom function in which the gethostbyname function is invoked to obtain the IP address of the computer based on the computer name, and the response code is as follows:
function TfrmMain.NameToIP(Name:string):String;
var
WSAData: TWSAData;
HostEnt: PHostEnt;
begin
result:='';
WSAStartup(2, WSAData);
HostEnt := GetHostByName(PChar(Name));
if HostEnt <> nil then
begin
with HostEnt^ do
result:= Format('%d.%d.%d.%d',[Byte(h_addr^[0]), Byte(h_addr^[1]),Byte(h_addr^[2]), Byte(h_addr^[3])]);
end;
WSACleanup;
end;