Para trazer a um label1 e label 2 o ip da maquina e o nome do host
Para que voce possa trazer para um label o nome da maquia e o host
basta voce criar uma unit que va passar os parametros para seu formulario que contem os label
simples faça a unit com os seguintes valores
unit Unit2;
interface
uses Winsock; function GetIPFromHost(var HostName, IPaddr, WSAErr: string): Boolean;
implementation
uses
SysUtils;
function GetIPFromHost(var HostName, IPaddr, WSAErr: string): Boolean; type Name=array[0..100] of Char;
PName = ^Name; var
HEnt: pHostEnt;
HName: PName;
WSAData: TWSAData;
i: Integer; begin
Result := False; if WSAStartup($0101, WSAData) <> 0 thenbegin
WSAErr := 'Winsock is not responding."';
Exit; end;
IPaddr := '';
New(HName); if GetHostName(HName^, SizeOf(Name)) = 0 then begin
HostName := StrPas(HName^);
HEnt := GetHostByName(HName^); for i := 0 to HEnt^.h_length - 1 do
IPaddr :=
Concat(IPaddr,
IntToStr(Ord(HEnt^.h_addr_list^[i])) + '.');
SetLength(IPaddr, Length(IPaddr) - 1);
Result := True; end elsebegin case WSAGetLastError of
WSANOTINITIALISED:WSAErr:='WSANotInitialised';
WSAENETDOWN :WSAErr:='WSAENetDown';
WSAEINPROGRESS :WSAErr:='WSAEInProgress'; end; end;
Dispose(HName);
WSACleanup; end;
end.
depois no formulario que vai receber simples
faça isso
procedure TForm1.FormCreate(Sender: TObject); var host, ip , err : string; begin if GetIPFromHost(Host, IP, Err) thenbegin
Label1.Caption := ip;
Label2.Caption := host; end else
MessageDlg(Err, mtError, [mbOk], 0); end;