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; |