(De las Faq's de borland)
Obtener el nombre de la máquina local de Internet y la dirección IP es un proceso directo que es fácilmente obtenido usando el componente TCP. Simplemente vuelca un componente TCP desde la página de Internet de la paleta de componentes a un form, y accede a las siguientes propiedades del componente TCP.
Código Delphi
[-]
Memo1.Lines.Add(TCP1.LocalHostName);
Memo1.Lines.Add(TCP1.LocalIp);
Si prefiere no usar el componente TCP aquí hay un ejemplo que une directamente con tu capa winsock
Código Delphi
[-]
uses Winsock;
procedure TForm1.FormCreate(Sender: TObject);
var
wVersionRequested : WORD;
wsaData : TWSAData;
begin
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
GetHostName(@s, 128);
p := GetHostByName(@s);
Memo1.Lines.Add(p^.h_Name);
p2 := iNet_ntoa(PInAddr(p^.h_addr_list^)^);
Memo1.Lines.Add(p2);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
WSACleanup;
end;