Achando o IP da máquina
para informar aos jogadores, quando perar como servidor

Nos jogos multiplayer, quando usamos a estrutura cliente servidor, é preciso repassar aos participantes (jogadores) o IP da máquina que funcionará como servidor. Esta função retorna uma string com esse IP.

Antes de usar, declarar na seção uses: WinSock.

function GetLocalIP: string;
type
  TaPInAddr = array [0..10] of PInAddr;
  PaPInAddr = ^TaPInAddr;
var
  phe: PHostEnt;
  pptr: PaPInAddr;
  Buffer: array [0..63] of char;
  I: Integer;
  GInitData: TWSADATA;
begin
  WSAStartup($101, GInitData);
  Result:= '';
  GetHostName(Buffer, SizeOf(Buffer));
  phe:=GetHostByName(buffer);
  if phe = nil then exit;
  pptr:= PaPInAddr(Phe^.h_addr_list);
  I:= 0;
  while pptr^[I] <> nil do begin
    result:= StrPas(inet_ntoa(pptr^[I]^));
    Inc(I);
  end;
  WSACleanup;
end;
 
online