Testar conexão com a Internet

20/03/2010

Qual a melhor forma de testar, via Delphi, se a máquina tem conexão com a internet? e se um host está ativo?

Grato!
José Aguiar

José Aguiar

Curtidas 0

Respostas

Rodrigo Mourão

Rodrigo Mourão

20/03/2010

Olá, De uses na unit WinInet

Depois utilize o seguinte código:

var i:dword;
begin
  if InternetGetConnectedState(@i,0) then
    showmessage('esta conectado')
  else
    showmessage('nun ta não');
end;


Agora o que seria verificar um host ativo ??

Att,


GOSTEI 0
José Aguiar

José Aguiar

20/03/2010

seguinte verificar se um host está ativo é verificar se um serviço rodando em uma máquina remota está respondendo.

tipo: ping http://MyWebServices.no-ip.org/cgi-bi/server.exe

e ver se ele responde. Se sim eu solicitaria acesso.
GOSTEI 0
Rodrigo Mourão

Rodrigo Mourão

20/03/2010

Geralmente os serviços web possuem um metodo para verificar o status como por exemplo os WebServices da NFe. Agora se eu serviço nao tem um metodo deste entao teria que verifacar outra forma.

Vou verificar se há viabilidade nativa para isso no delphi. creio que sim.

Att,

GOSTEI 0
Rodrigo Mourão

Rodrigo Mourão

20/03/2010

Olá Jose,

Bem analisando e realizando alguns testes cheguei a conclusão que a maneira mais correta e segura seria o servidor  http://MyWebServices.no-ip.org/cgi-bi/server.exe ter um método status.

Isso porque você pode ate dar um ping em ping http://MyWebServices.no-ip.org/cgi-bi e responder com sucesso sem erro mas isso não significa que a aplicação esta no ar mas sim que o servidor onde a aplicação esta hospedada esta no ar.

Então, caso não tenha o service poderia fazer um Try Except, Ex.:

try
  chamar método em http://MyWebServices.no-ip.org/cgi-bi/server.exe
except
  Msg Servidor Fora do Ar.
end;

O problema que para fazer isso você terá que chamar um método e se o servidor estiver no ar o método vai ser executado. Então imagina executar um método que não poderia ser executado só para testar o servidor.

Por isso o ideal e o servidor ter um método que retorno o status do serviço.

Se puder ajudar em algo mais estamos a disposição.

att,

GOSTEI 0
POSTAR