Descobrir se esta conectado a internet e o ip da conexão?
Bom dia a todos...
Pessoal como faço para descobrir se o pc na qual minha aplicação esta rodando esta conectado a Internet e também como descobrir o ip da conexão atual , no caso de um ip dinâmico?
Grato Fausto
Pessoal como faço para descobrir se o pc na qual minha aplicação esta rodando esta conectado a Internet e também como descobrir o ip da conexão atual , no caso de um ip dinâmico?
Grato Fausto
Faustoalves
Curtidas 0
Respostas
Guialberto Soares
17/09/2006
Veja este tópio:
´testar se a internet esta ou não conectada:´
http://www.activedelphi.com.br/modules.php?op=modload&name=XForum&file=viewthread&tid=26292#pid67962
Sobre o ip da conxexão, se for diaul-up eu tenho um exemplo, qualquer coida é só pedir
´testar se a internet esta ou não conectada:´
http://www.activedelphi.com.br/modules.php?op=modload&name=XForum&file=viewthread&tid=26292#pid67962
Sobre o ip da conxexão, se for diaul-up eu tenho um exemplo, qualquer coida é só pedir
GOSTEI 0
Guialberto Soares
17/09/2006
Olá amigo a respeito do IP da conxeão, vou colocar a baixo
OBS: só testei com conexão Dial-up:
var
Form1: TForm1;
implementation
[color=red:24732def01][b:24732def01]uses Winsock[/b:24732def01][/color:24732def01];
{$R *.dfm}
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;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(´IP: ´ + GetLocalIP);
end;
end.
Espero ter ajudado ...
[]´ Guiga
OBS: só testei com conexão Dial-up:
var
Form1: TForm1;
implementation
[color=red:24732def01][b:24732def01]uses Winsock[/b:24732def01][/color:24732def01];
{$R *.dfm}
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;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(´IP: ´ + GetLocalIP);
end;
end.
Espero ter ajudado ...
[]´ Guiga
GOSTEI 0
Faustoalves
17/09/2006
Muito obrigado, agora vc disse que é sobre uma conexão dial up, desculpe a ignorância, mas qual seria a diferença?
Grato
Fausto
Grato
Fausto
GOSTEI 0
Guialberto Soares
17/09/2006
Quando disse Dial-up na verdade estava querendo dizer Discada.
Ou seja que eu tinha testado somente em conexão discada e não de banda larga, não que eu tenha certeza se há diferença.
Ou seja que eu tinha testado somente em conexão discada e não de banda larga, não que eu tenha certeza se há diferença.
GOSTEI 0
Faustoalves
17/09/2006
Obrigado pela resposta..
Mas não houve diferença não a rotina esta funcionando perfeitamente..
Mais uma vez obrigado
Fausto
Mas não houve diferença não a rotina esta funcionando perfeitamente..
Mais uma vez obrigado
Fausto
GOSTEI 0
M@gnun
17/09/2006
para obter o ip externo, basta acessar um site q forneca o ip, com o www.meuip.com.br e pegar o resultado do ip com o TIDHTTP do Indy.
Procure aqui no forum q tem um exemplo completo de como pegar ... acho q o adriano santos postou.
Procure aqui no forum q tem um exemplo completo de como pegar ... acho q o adriano santos postou.
GOSTEI 0