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;