Einzelnen Beitrag anzeigen

Micha

Registriert seit: 21. Jul 2003
Ort: Neumarkt
263 Beiträge
 
#1

fortlaufender Ping + Zeitausgabe

  Alt 18. Okt 2005, 07:30
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;
  Mit Zitat antworten Zitat