Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   IdICMPClient.Ping (https://www.delphipraxis.net/201742-idicmpclient-ping.html)

holger_barntrup 22. Aug 2019 11:08

IdICMPClient.Ping
 
Liste der Anhänge anzeigen (Anzahl: 1)
Was mache ich hier falsch?

Delphi-Quellcode:
unit Unit3;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, IdIcmpClient, IdBaseComponent,
  IdComponent, IdRawBase, IdRawClient, Vcl.StdCtrls;

type
  TForm3 = class(TForm)
    Button1: TButton;
    IdIcmpClient: TIdIcmpClient;
    procedure IdIcmpClientReply(ASender: TComponent;
      const AReplyStatus: TReplyStatus);
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form3: TForm3;

implementation

{$R *.dfm}

procedure TForm3.Button1Click(Sender: TObject);
begin
   IdICMPClient.ReceiveTimeout := 5000; // Timeout 5000 ms
   //IdICMPClient.Host := edtAddress.Text;
   IdICMPClient.Host := '172.17.1.130';
   IdICMPClient.Ping();
end;

procedure TForm3.IdIcmpClientReply(ASender: TComponent;
  const AReplyStatus: TReplyStatus);
begin
   ShowMessage('Received ' + IntToStr(AReplyStatus.BytesReceived) + ' ' +
               'Bytes from ' + AReplyStatus.FromIpAddress + ' ' +
               'after ' + IntToStr(AReplyStatus.MsRoundTripTime) + ' ms.');
end;

end.
Ist ein Beispiel aus dem Netz. Ich erhalte dies zurück:

Anhang 51576

mjustin 22. Aug 2019 11:20

AW: IdICMPClient.Ping
 
Hat das Benutzerkonto, unter dem das Programm, läuft Admin-Rechte?

http://embarcadero.newsgroups.archiv...081213768.html
https://stackoverflow.com/questions/...tor-privileges

Oh - sehe dass eine Exception ausgelöst würde wenn die Admin-Rechte nicht vorhanden sind (Access Denied Error (Socket Error #10013). Es liegt daher wahrscheinlich nicht daran.

Steku 22. Aug 2019 11:28

AW: IdICMPClient.Ping
 
Mal was ganz anderes: Windows Firewall??
Sind ein- und ausgehende Verbindungen für ICMP erlaubt?

Grüße
Steku

holger_barntrup 22. Aug 2019 11:35

AW: IdICMPClient.Ping
 
Ja sind sie.
Wenn ich das Windows Ping nutze geht es auch.

holger_barntrup 22. Aug 2019 11:36

AW: IdICMPClient.Ping
 
Zitat:

Zitat von mjustin (Beitrag 1442573)
Hat das Benutzerkonto, unter dem das Programm, läuft Admin-Rechte?

http://embarcadero.newsgroups.archiv...081213768.html
https://stackoverflow.com/questions/...tor-privileges

Oh - sehe dass eine Exception ausgelöst würde wenn die Admin-Rechte nicht vorhanden sind (Access Denied Error (Socket Error #10013). Es liegt daher wahrscheinlich nicht daran.

Hat es!

holger_barntrup 22. Aug 2019 11:50

AW: IdICMPClient.Ping
 
Hab das jetzt au mehreren Rechnern getestet. Funktioniert nirgends.
Was mich auch stutzig macht ist die Tatsache das als IP 0.0.0.0 zurück kommt.

mjustin 22. Aug 2019 12:00

AW: IdICMPClient.Ping
 
Bug in der verwendeten Iny Version oder ist es die aktuellste (von indy.fulgan.com oder aus dem Repository)?

HolgerX 22. Aug 2019 12:07

AW: IdICMPClient.Ping
 
Hmm..

Hast Du denn auch mal das AReplyStatus ausgewertet?

Wenn ich deine IP ('172.17.1.130') verwende erhalte ich ein TimeOut als AReplyStatus.ReplyStatusType.

Dann sind die Werte in deinem ShowMessage halt leer...

Teste mal mit einem anderen Host z.B. 'google.de'

Beispiel für Status-Auswertung:
https://www.delphipraxis.net/134039-...inen-ping.html

holger_barntrup 22. Aug 2019 12:48

AW: IdICMPClient.Ping
 
Zitat:

Zitat von HolgerX (Beitrag 1442594)
Teste mal mit einem anderen Host z.B. 'google.de'

Beispiel für Status-Auswertung:
https://www.delphipraxis.net/134039-...inen-ping.html

Bei Google.de kommt schon mal die IP und die Zeit.
Hmmmm

Luckie 22. Aug 2019 15:52

AW: IdICMPClient.Ping
 
Was verbirgt sich hinter 172.17.1.130? Bei einem fremden Rechner, weißt du nicht wie er konfiguriert ist.

holger_barntrup 23. Aug 2019 05:17

AW: IdICMPClient.Ping
 
Dahinter verbirgt sich ein ein XP Rechner auf dem die Bedienoberfläche (Selbstprogrammiert) einer CNC Maschine läuft. Der ist mit einigen anderen in einem eigenen Netzwerk auf das ich von hier auch zugreifen kann.
Da hab ich bisher nie Probleme damit gehabt. Er lässt sich auch ohne weiteres anpingen, nur eben mit dem kleinen Progrämmchen nicht.

Edit:
Kommando zurück...
Geht mit dem Windows Ping auch nicht. :pale:
Ich kann mich mit Telnet zwar verbinden, dann aber mit Portangabe.
Muss das mal ergründen, das ging schon mal.

Edit2:
Also bei anderen Rechnern funktioniert es. Was mich nur wundert ist das
Delphi-Quellcode:
AReplyStatus.BytesReceived
immer 0 zurück liefert.

ghubi01 23. Aug 2019 11:03

AW: IdICMPClient.Ping
 
Hallo Holger,

am XP-Rechner:
Netzwerkverbindungen -> Windows-Firewalleinstellungen ändern
-> Dialog Windows-Firewall -> Reiter Erweitert -> Abschnitt ICMP -> Button Einstellungen
-> Dialog ICMP Einstellungen -> Häkchen bei Eingehende Echoanforderungen zulassen setzen
dann funktioniert es auch mit dem XP-Rechner.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:02 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz