//uses winSock
procedure TForm1.Button45Click(Sender: TObject);
begin
ShowMessage('Primeiro Endereço IP: ' + IPLocal);
ShowMessage('Todos os endereços de IP: ' + IPLocal(','));
end;
function TForm1.IPLocal(const aSeparator: string = ''): string;
type
TInAddrList = array[0..0] of PInAddr;
PInAddrList = ^TInAddrList;
var
HostEnt: PHostEnt;
InAddrList: PInAddrList;
Buffer: array[0..63] of AnsiChar;
I: Integer;
GInitData: TWSADATA;
begin
Result := '';
WSAStartup($101, GInitData);
try
GetHostName(Buffer, SizeOf(Buffer));
HostEnt := GetHostByName(Buffer);
if Assigned(HostEnt) then
begin
InAddrList := PInAddrList(HostEnt^.h_addr_list);
I := 0;
while InAddrList[I] <> nil do
begin
if Result <> '' then
Result := Result + ',';
Result := Result + StrPas(inet_ntoa(InAddrList[I]^));
if ASeparator = '' then
Exit;
Inc(I);
end;
end;
finally
WSACleanup;
end;
end;
Gostou? Deixe seu comentário... Convido você a seguir meu blog, sua presença é bem vinda!【ツ】
Nenhum comentário:
Postar um comentário