Ver Mensaje Individual
  #1  
Antiguo 24-03-2005
killaton killaton is offline
Miembro
 
Registrado: mar 2005
Ubicación: Argentina
Posts: 14
Reputación: 0
killaton Va por buen camino
Exclamation como hacer un ping....

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.