Capturar IP externo
Ola, preciso capturar para visualizacao o ip externo(que o provedor me fornece) como faco isso?
Tenho esta funcao mas pega o IP interno:
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]^));
result := StrPas(inet_ntoa(pptr^[I]^));
Inc(I);
end;
WSACleanup;
end;
Obrigado
Tenho esta funcao mas pega o IP interno:
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]^));
result := StrPas(inet_ntoa(pptr^[I]^));
Inc(I);
end;
WSACleanup;
end;
Obrigado
Estanieski
Curtidas 0
Melhor post
Sanses
15/03/2005
E esta o interno e externo
Sanses
uses
Winsock;
{...}
function getIPs: Tstrings;
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 := TstringList.Create;
Result.Clear;
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.Add(inet_ntoa(pptr^[I]^));
Inc(I);
end;
WSACleanup;
end;
//==Chame assim
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Lines := GetIps;
end;Sanses
GOSTEI 2
Mais Respostas
Cristiano
15/03/2005
Boa tarde raetardehttps://www.devmedia.com.br/forum/perfil/sanses/234688
mas estou usando seu codigo no delphi xe8 e esta dando erro na linha que tem a palavra Buffer, gostaria de saber se tenho que declarar algo na Uses ou alguma variavel. Aguardo resposta, email: cristiano19020@gmail.com
mas estou usando seu codigo no delphi xe8 e esta dando erro na linha que tem a palavra Buffer, gostaria de saber se tenho que declarar algo na Uses ou alguma variavel. Aguardo resposta, email: cristiano19020@gmail.com
GOSTEI 0
Marcelo Stefaniak
15/03/2005
declare como abaixo:
var Buffer: pansichar;
var Buffer: pansichar;
GOSTEI 0
Quality Sistemas
15/03/2005
Parabéns pelo post e para quem tiver problemas com o Buffer a correção é:
Buffer : array [0 .. 63] of Ansichar;
Buffer : array [0 .. 63] of Ansichar;
GOSTEI 0
Gladson Reis
15/03/2005
Boa tarde ! Aguem pode me enviar este código funcionando ?
gladson @ stonestecnologia com br
gladson @ stonestecnologia com br
GOSTEI 0