Fórum Verificar conexão com IP #330011

25/09/2006

0

Bom dia, estou precisando verificar se um ip está disponível para conexão. Por exemplo: Tenho dois IP´s, um para acesso interno e outro para acesso externo. (192.168.0.1 e 200.258.152.35)

Quando o sistema executa ele verifica se é possível conectar pelo IP interno... quando não consegue ele gera uma excessão e ae tenta pelo externo.

Só que eu uso o Zeos para conectar e ele demora muito para retornar a excessão.

Ai vem a pergunta... não tem como eu verificar se o IP está disponível para conexão utilizando Socktes ou Indy, ou qualquer outra tecnologia? Sem ter que esperar a excessão do componente?


Desde já agradeço
Marcelo


Marcelo_mileris

Marcelo_mileris

Responder

Posts

25/09/2006

Marcelo_mileris

Desculpa pelo Excessão ai gente...


Responder

Gostei + 0

25/09/2006

Aloizio Castro

Ping nao resolve o seu problema?


procedure Ping;
var
  IdIcmp : TIdIcmpClient;
begin
  IdIcmp := TIdIcmpClient.Create(nil);
  IdIcmp.Host := ´127.0.0.1´;
  IdIcmp.PacketSize := 128;
  IdIcmp.Port := 0;
  IdIcmp.Protocol := 1;
  IdIcmp.ProtocolIPv6 := 58;
  IdIcmp.ReceiveTimeout := TimeOut;
  IdIcmp.OnReply := OnReply;
  IdIcmp.Ping();
  FreeAndNil(IdIcmp);
end;

procedure OnReply(ASender: TComponent; const AReplyStatus: TReplyStatus);
begin
  //-- Analisa o retorno do ping

  if AReplyStatus.Msg <> ´´then
    begin
      ShowMessage(AReplyStatus.Msg);
    end;
end;




Responder

Gostei + 0

25/09/2006

Marcelo_mileris

Não... até esqueci de comentar... mas o servidor não retorna ping. Por questões de segurança ele não retorna um ping pra ele.

Teria outra solução?


Responder

Gostei + 0

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

Aceitar