Ein einfaches kleines Beispiel. Funktioniert unter Windows NT/2000/XP nur mit Administratorrechten (Microsofts 'ping' braucht die nicht, denn Microsoft hat gecheatet, sie benutzen nämlich undokumentierte Funktionen,
Indy nicht).
Delphi-Quellcode:
procedure TfrmMain.btnPingClick(Sender: TObject);
begin
IdICMPClient.ReceiveTimeout := 5000; // Timeout 5000 ms
IdICMPClient.Host := edtAddress.Text;
IdICMPClient.Ping();
end;
procedure TfrmMain.IdIcmpClientReply(ASender: TComponent;
const AReplyStatus: TReplyStatus);
begin
ShowMessage('Received ' + IntToStr(AReplyStatus.BytesReceived) + ' ' +
'Bytes from ' + AReplyStatus.FromIpAddress + ' ' +
'after ' + IntToStr(AReplyStatus.MsRoundTripTime) + ' ms.');
end;