Hola gente ....
Ante todo muchas gracias por su voluntad y como decimos por aqui por su buena onda...
He encontra do por ahi el codigo para realizar un PING en tiempo de ejecucion desde Delphi y saber de esta manera si el host a pinguear esta encendigo (que es en definitiva lo que necesito saber).
El problema es que por alguna razon no funciona.... por ejemplo.
1- Si el Host existe ? la linea
Ping.ReplyStatus.BytesReceived devuelve 0.
y por lo poco que entiendo si existe deberia devolverme un entero mayor a 0.
2- Si el HOST no existe? me da un error
SOCKET error #110001 Host not found.
hay forma de evitar este error y que me permita seguir el funcionamiento de mi aplicativo?
Les paso el codigo....
var
Ping:TIdIcmpClient;
rango,direcciones:String;
seccion,I:integer;
begin
Rango := InputBox('Ingrese la IP a realizar el PING...','Direccion IP','');
Ping := TIdIcmpClient.Create(nil);
Ping.BufferSize :=8192;
Ping.ReceiveTimeout := 200;
Showmessage('Procesando... La tarea puede tardar unos minutos');
Ping.Host := Rango;
Showmessage('Probando con '+Ping.Host);
Ping.Ping;
Ping.Receive(500);
showmessage(inttostr(Ping.ReplyStatus.BytesReceived));
showmessage(inttostr(Ping.TTL));
If Ping.ReplyStatus.BytesReceived <> 0 Then
begin
Showmessage(' - Respuesta de: '+Ping.ReplyStatus.FromIpAddress);
Showmessage(' >> Bytes recibidos: '+IntToStr(Ping.ReplyStatus.BytesReceived));
Direcciones := Direcciones +' - '+Ping.ReplyStatus.FromIpAddress;
end;
Showmessage(Direcciones);
Showmessage('Pulse ENTER para salir');
Ping.Destroy;
end;
desde ya mil gracias por todo... a quienes puedan darme una mano.