Verificar conexão com IP
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
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
Curtidas 0
Respostas
Marcelo_mileris
25/09/2006
Desculpa pelo Excessão ai gente...
GOSTEI 0
Aloizio Castro
25/09/2006
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;
GOSTEI 0
Marcelo_mileris
25/09/2006
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?
Teria outra solução?
GOSTEI 0