Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi fortlaufender Ping + Zeitausgabe (https://www.delphipraxis.net/55216-fortlaufender-ping-zeitausgabe.html)

Micha 18. Okt 2005 07:30


fortlaufender Ping + Zeitausgabe
 
Ich benötige ein Programm, dass mir über Nacht fortlaufend einen Rechner anpingt.

Das anpingen weiß ich wie es geht. Nur weiß ich nicht, wie ich mir die "richtige" Uhrzeit dahinterschreiben kann. Im Moment zeigt er mir ja nur sowas wie
72 Byte von <ip-adresse>: icmp seq=3492 ttl=128 time<10 ms

ich hätte aber gerne, dass mir die Uhrzeit ausgegeben wird, vor allem wenn der Host nicht erreichbar ist.


Ich habe meinen bisherigen Code auch nur im Internet gefunden.

Delphi-Quellcode:
procedure Tfrm_netzwerk.ICMPReply(ASender: TComponent;
  const AReplyStatus: TReplyStatus);
var
  sTime: string;
begin
  // Antwort - Zeit überprüfen
  if (ICMP.ReplyStatus.MsRoundTripTime = 0) then
    sTime := '<1'
  else
    sTime := '=';
  // Füge der Listbox die Items hinzu
    lstReplies.Items.Add(Format('%d Bytes von %s: icmp_seq=%d ttl=%d time%s%d ms',
    [ICMP.ReplyStatus.BytesReceived,
    ICMP.ReplyStatus.FromIpAddress,
    ICMP.ReplyStatus.SequenceId,
    ICMP.ReplyStatus.TimeToLive,
    sTime,
    ICMP.ReplyStatus.MsRoundTripTime]));

end;

procedure Tfrm_netzwerk.btnPingClick(Sender: TObject);
var
  i: integer;
begin
  // Listbox leeren
  lstReplies.Clear;
  // Ereignis 'OnReply' festlegen
  ICMP.OnReply := ICMPReply;
  // ReceiveTimeout einstellen
  ICMP.ReceiveTimeout := 1000;
  // Button Oing auf Enabled=False setzen
  btnPing.Enabled := False;
  // Ping starten
  try
    // Host festlegen
    ICMP.Host := edt_host1.Text;
    // Ping so oft durchführen wie bei 'Anzahl der Pings' festgelegt
    for i := 1 to edCount.Value do begin
      try
        // Ping senden
        ICMP.Ping;
        // Nachrichten verarbeiten
        Application.ProcessMessages;
        // nach jedem Ping eine Sekunde Pause machen
        //Sleep(1000);
      except
        MessageDlg('Ping fehlgeschlagen!'+#13+#10+'Mögliche Ursache: Ungültiger Host', mtError, [mbOK], 0);
        Exit;
      end;
    end;
  finally
    // Button Ping wieder auf Enabled=True
    btnPing.Enabled := True;
  end;
end;

Kroko1999 18. Okt 2005 07:37

Re: fortlaufender Ping + Zeitausgabe
 
Delphi-Quellcode:
lstReplies.Items.Add (TimeToStr(Now));

Kara 18. Okt 2005 07:38

Re: fortlaufender Ping + Zeitausgabe
 
Dir sollte das helfen: Thread in der DP

TimeToStr(Time)

Micha 18. Okt 2005 11:45

Re: fortlaufender Ping + Zeitausgabe
 
oweh, na freilich - DANKESCHÖÖÖN

dragi 8. Nov 2005 20:18

Re: fortlaufender Ping + Zeitausgabe
 
Da mich das "pingen" auch gerade interesiiert habe ich den oben geposteten Code mal ausprobiert. Bei mir zeigt der allerdings bei jeder Ausgabe eine Zeit von <10ms an?! Wenn ich in der cmd.exe ping auf die IP mache kommen aber Zeiten von 80ms raus. Woran kann das liegen?

Gruss

Dragi


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:39 Uhr.

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