Retornar IP

Delphi

17/04/2004

Boa Noite,

Tenho uma Funçao que pega o IP Local da Maquina (Rede), mas eu estava querendo uma funçao que pegasse o IP que esta conectado a Internet (ADSL).

Procurei no Pesquisar Acima, mas soh encontrei funções que retorna o IP local.


Spooner

Spooner

Curtidas 0

Melhor post

Spooner

Spooner

18/04/2004

Tenho uma Funçao que pega o IP Local da Maquina (Rede), mas eu estava querendo uma funçao que pegasse o IP que esta conectado a Internet (ADSL). Procurei no Pesquisar Acima, mas soh encontrei funções que retorna o IP local. Olá caro amigo será q poderia me passar essa função ? atenciosAmente, Izaias


Aqui esta Colega,
Declare WinSock em Uses
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;


Use desta forma:
  Label1.Caption := GetLocalIP;



GOSTEI 1

Mais Respostas

Snipa

Snipa

17/04/2004

Na paleta IndyMisc coloca o idIpwatch eh oque tem uma imagem escrita IP
Ai pra pega o da net faz assim
label1.Caption := idIPwatch1.CurrentIP;

no caso to mostrando num label :)


GOSTEI 0
Izaias

Izaias

17/04/2004

Tenho uma Funçao que pega o IP Local da Maquina (Rede), mas eu estava querendo uma funçao que pegasse o IP que esta conectado a Internet (ADSL).

Procurei no Pesquisar Acima, mas soh encontrei funções que retorna o IP local.


Olá caro amigo será q poderia me passar essa função ?
atenciosAmente, Izaias


GOSTEI 0
Weverton

Weverton

17/04/2004

:arrow: Vc tem os componentes Indy instalados?? Se tiver, coloque a unit IdStack na sua uses e faça:

var stl: TStringList
begin
stl := TStringList.Create;
stl.AddStrings(GStack.LocalAddress);
// Vc vai popular a stl com todos os IP´s da sua máquina
end;


GOSTEI 0
Spooner

Spooner

17/04/2004

Snipa,

Valew pela dica, vou testar amanha... no meu Trabalho.


GOSTEI 0
Spooner

Spooner

17/04/2004

:arrow: Vc tem os componentes Indy instalados?? Se tiver, coloque a unit IdStack na sua uses e faça: var stl: TStringList begin stl := TStringList.Create; stl.AddStrings(GStack.LocalAddress); // Vc vai popular a stl com todos os IP´s da sua máquina end;


Obrigado pela dica, mas deu erro... :(


GOSTEI 0
Edi Souza

Edi Souza

17/04/2004

Tenho uma Funçao que pega o IP Local da Maquina (Rede), mas eu estava querendo uma funçao que pegasse o IP que esta conectado a Internet (ADSL). Procurei no Pesquisar Acima, mas soh encontrei funções que retorna o IP local. Olá caro amigo será q poderia me passar essa função ? atenciosAmente, Izaias


Aqui esta Colega,
Declare WinSock em Uses
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;


Use desta forma:
  Label1.Caption := GetLocalIP;



GOSTEI 0
Edi Souza

Edi Souza

17/04/2004

Tenho uma Funçao que pega o IP Local da Maquina (Rede), mas eu estava querendo uma funçao que pegasse o IP que esta conectado a Internet (ADSL). Procurei no Pesquisar Acima, mas soh encontrei funções que retorna o IP local. Olá caro amigo será q poderia me passar essa função ? atenciosAmente, Izaias


Aqui esta Colega,
Declare WinSock em Uses
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;


Use desta forma:
  Label1.Caption := GetLocalIP;





Perfeito, funcionou.
GOSTEI 0
POSTAR