GARANTIR DESCONTO

Fórum Verificar se existe conexão com a internet pelo Delphi 7 #410150

03/12/2011

0

Ola gabela. Mais uma vez eu venho buscar a ajuda do fórum. Bom antes de explicar exatamente qual é o meu problema, eu quero dizer que pesquisei tudo sobre esse assunto aqui no fórum, e em outros também.
Bom agora vamos ao problema, eu estou fazendo um programa em Delphi 7, que precisara acessar a internet para baixar um arquivo de validação para poder ser usado. É a primeira vez que faço isso, então andei pesquisando sobre isso. Eu vi que existem várias funções para fazer isso, porem, todas tem alguma falha em algum momento, exemplo, se desconecto e faço a verificação ele acusa que ainda estou conectado. Então suponhamos que o usuário se conecta na internet e por alguma razão perde essa conexão, ai se ele for usar o programa, e a verificação retornar que está conectado sem que realmente esteja, isso vai bugar maus programa mais a frente. O que eu preciso é que, seja verificado se existe mesmo ou não existe conexão com a internet, e que tipo de conexão é essa.
Tentei até fazer diretamente por um componente da paleta Indy Client, diretamente pela propriedade Host dele, se tiver conexão beleza, porem se não tiver ele gera esse erro abaixo que eu não sei como resolver.

socket error # 11101 host not found

Bom galera desde já agradeço se alguém puder me ajudar ok.
Carlos Catanduva

Carlos Catanduva

Responder

Post mais votado

06/12/2011

Ola Flavia, obrigado por responder. Não tentei do jeito que você me disse, até porque eu nuca trabalhei com esses tipos de componentes, nem faço ideia como se usa eles, se você tiver algum código de exemplo ai para postar eu agradeço você.
Mais eu pesquisando no Google acho que encontrei uma solução para o meu problema. Encontrei um exemplo no site do Active Delphi (o link que está abaixo), e até agora parece que ele funciona perfeitamente.
Quando liguei o computador eu testei antes de me conectar na internet, e me retornou corretamente que não estava conectado. Depois me conectei e testei, e retornou que estava conectado, ai me desconectei e testei novamente, e corretamente deu que estava desconectado. Se puder olhar e me dizer o que acha eu agradeço.

Estou chamando a unit assim: conexao:=Unit2.ping(1000, www.google.com.br, 80); (conexao = variável do tipo Integer)
OBS: Quais outros valores eu poderia colocar como valor para o último parâmetro da chamada (porta)?

Obrigado Flavia pela ajuda.


http://www.activedelphi.com.br/forum/viewtopic.php?p=218592&sid=19423ef676434751088f5a866f14e718

Carlos Catanduva

Carlos Catanduva
Responder

Gostei + 1

Mais Posts

04/12/2011

Carlos Catanduva

Será que ninguém ai pode ajudar mesmo? Outro detalhe que eu verifiquei nessas funções que encontrei na internet é que:
Eu liguei o computador e antes mesmo de se conectar na internet eu foi testar essas funções, e pra minha surpresa elas retornaram que estava conectado mesmo antes de eu ter me conectado.
Bom eu espero que alguém possa me ajudar. Obrigado a todos desde já.
Responder

Gostei + 0

05/12/2011

Flavia Santos

Ola gabela. Mais uma vez eu venho buscar a ajuda do fórum. Bom antes de explicar exatamente qual é o meu problema, eu quero dizer que pesquisei tudo sobre esse assunto aqui no fórum, e em outros também.
Bom agora vamos ao problema, eu estou fazendo um programa em Delphi 7, que precisara acessar a internet para baixar um arquivo de validação para poder ser usado. É a primeira vez que faço isso, então andei pesquisando sobre isso. Eu vi que existem várias funções para fazer isso, porem, todas tem alguma falha em algum momento, exemplo, se desconecto e faço a verificação ele acusa que ainda estou conectado. Então suponhamos que o usuário se conecta na internet e por alguma razão perde essa conexão, ai se ele for usar o programa, e a verificação retornar que está conectado sem que realmente esteja, isso vai bugar maus programa mais a frente. O que eu preciso é que, seja verificado se existe mesmo ou não existe conexão com a internet, e que tipo de conexão é essa.
Tentei até fazer diretamente por um componente da paleta Indy Client, diretamente pela propriedade Host dele, se tiver conexão beleza, porem se não tiver ele gera esse erro abaixo que eu não sei como resolver.

socket error # 11101 host not found

Bom galera desde já agradeço se alguém puder me ajudar ok.


Já tentou pingar um host externo?
Você usaria um componente IdIcmpClient (Paleta Indy), onde definiria o seu host, exemplo:

MeuIdCMP.Host := www.google.com.br;
MeuIdCMP.Ping();

Depois você pega o resultado do ping assim:

var ConexaoAtiva: String;
ConexaoAtiva := MeuIdCMP.ReplyData;

Não estou com o Delphi instalado aqui nessa máquina, então não deu para testar.
Se der algum erro posta ai que te ajudo a verificar.
Acredito que essa seja a maneira mais segura de você descobrir de a sua máquina está ou não conectada na Internet.
Responder

Gostei + 0

15/09/2017

Rosilene Back

Bom dia! Aqui deu certo usando o ping.

http://www.activedelphi.com.br/forum/viewtopic.php?p=218592&sid=19423ef676434751088f5a866f14e718
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar