it-swarm.com.de

Ping mit Zeitstempel

In der Windows-Eingabeaufforderung cmd verwende ich ping -t to 10.21.11.81

Reply from 10.21.11.81: bytes=32 time=3889ms TTL=238
Reply from 10.21.11.81: bytes=32 time=3738ms TTL=238
Reply from 10.21.11.81: bytes=32 time=3379ms TTL=238

Gibt es Möglichkeiten, eine solche Ausgabe zu erhalten?

10:13:29.421875 Reply from 10.21.11.81: bytes=32 time=3889ms TTL=238
10:13:29.468750 Reply from 10.21.11.81: bytes=32 time=3738ms TTL=238
10:13:29.468751 Reply from 10.21.11.81: bytes=32 time=3379ms TTL=238

Bitte beachten Sie, dass ich dies nur mit Befehlen von CMD erreichen möchte

56
Isaac Lem
@echo off
    ping -t localhost|find /v ""|cmd /q /v:on /c "for /l %%a in (0) do (set "data="&set /p "data="&if defined data echo(!time! !data!)" 

note: Code, der in einer Batchdatei verwendet werden soll. Um von der Befehlszeile aus zu verwenden, ersetzen Sie %%a durch %a.

Starten Sie den Ping-Befehl, erzwingen Sie eine korrekte zeilengepufferte Ausgabe (find /v) und starten Sie einen cmd-Prozess mit aktivierter verzögerter Erweiterung, die eine Endlosschleife liest und die Pipe-Daten liest, die vor der aktuellen Uhrzeit an die Konsole gesendet werden.

2015-01-08 bearbeitet : In schnelleren/neueren Versionen von Maschinen/Betriebssystemen gibt es im vorherigen Code ein Synchronisationsproblem, das dazu führt, dass set /p eine Zeile liest, während der ping-Befehl es noch schreibt und das ergebnis sind linienschnitte.

@echo off
    ping -t localhost|cmd /q /v /c "(pause&pause)>nul & for /l %%a in () do (set /p "data=" && echo(!time! !data!)&ping -n 2 localhost>nul"

Zwei zusätzliche pause-Befehle sind am Anfang der Subshell enthalten (nur einer kann verwendet werden, da jedoch pause ein Eingabezeichen verbraucht, wird ein CRLF-Paar unterbrochen und eine Zeile mit einer LF wird gelesen, um auf Eingangsdaten zu warten.) und ein ping -n 2 localhost ist enthalten, um eine Sekunde für jeden Lesevorgang in der inneren Schleife zu warten. Das Ergebnis ist ein stabileres Verhalten und weniger CPU-Auslastung.

HINWEIS: Das innere ping kann durch ein pause ersetzt werden, aber dann wird das erste Zeichen jeder gelesenen Zeile vom pause belegt und nicht vom set /p abgerufen.

80
MC ND

WindowsPowershell:

Option 1

ping.exe -t COMPUTERNAME|Foreach{"{0} - {1}" -f (Get-Date),$_}

Option 2

Test-Connection -Count 9999 -ComputerName COMPUTERNAME | Format-Table @{Name='TimeStamp';Expression={Get-Date}},Address,ProtocolAddress,ResponseTime
42
Hames

Sie können dies einfach tun:

ping 10.0.0.1 | while read line; do echo `date` - $line; done

Obwohl es nicht die Statistiken gibt, die Sie normalerweise erhalten, wenn Sie am Ende ^ C drücken.

27
Sam Critchley

Batch-Skript:

@echo off

set /p Host=host Address: 
set logfile=Log_%Host%.log

echo Target Host = %Host% >%logfile%
for /f "tokens=*" %%A in ('ping %Host% -n 1 ') do (echo %%A>>%logfile% && GOTO Ping)
:Ping
for /f "tokens=* skip=2" %%A in ('ping %Host% -n 1 ') do (
    echo %date% %time:~0,2%:%time:~3,2%:%time:~6,2% %%A>>%logfile%
    echo %date% %time:~0,2%:%time:~3,2%:%time:~6,2% %%A
    timeout 1 >NUL 
    GOTO Ping)

Dieses Skript fragt, welcher Host ping . Die Ping-Ausgabe wird an die Bildschirm- und Protokolldatei ..__ ausgegeben. Beispiel für eine Protokolldatei-Ausgabe:

Target Host = www.nu.nl
Pinging nu-nl.gslb.sanomaservices.nl [62.69.166.210] with 32 bytes of data: 
24-Aug-2015 13:17:42 Reply from 62.69.166.210: bytes=32 time=1ms TTL=250
24-Aug-2015 13:17:43 Reply from 62.69.166.210: bytes=32 time=1ms TTL=250
24-Aug-2015 13:17:44 Reply from 62.69.166.210: bytes=32 time=1ms TTL=250

Die Protokolldatei hat den Namen LOG_ [Hostname] .log und wird in denselben Ordner wie das Skript geschrieben.

24
sabo-fx

Unter Windows

Sie können eine der anderen Antworten verwenden.

Unter Unix/Linux

while :;do ping -n -w1 -W1 -c1 10.21.11.81| grep -E "rtt|100%"| sed -e "s/^/`date` /g"; sleep 1; done

Oder als Funktion pingt für Ihren ~/.bashrc:

pingt() {
  while :;do ping -n -w1 -W1 -c1 $1| grep -E "rtt|100%"| sed -e "s/^/`date` /g"; sleep 1; done
}

quelle: https://stackoverflow.com/a/26666549/1069083

4
rubo77

Versuche dies:

Erstellen Sie eine Batchdatei mit den folgenden Angaben:

echo off

cd\

:start

echo %time% >> c:\somedirectory\pinghostname.txt

ping pinghostname >> c:\somedirectory\pinghostname.txt

goto start

Je nach Ihren Anforderungen können Sie dem Ping-Befehl eigene Optionen hinzufügen. Dadurch wird der Zeitstempel nicht in die gleiche Zeile wie der Ping gestellt, aber Sie erhalten immer noch die Informationen, die Sie benötigen.

Ein noch besserer Weg ist die Verwendung von fping, hier http://www.kwakkelflap.com/fping.html , um es herunterzuladen.

2
jjrab

Dies könnte jemandem helfen: [Muss in Windows PowerShell ausgeführt werden]

ping.exe -t 10.227.23.241 |Foreach{"{0} - {1}" -f (Get-Date),$_} >> Ping_IP.txt

- Suchen Sie nach der Ping_IP.txt-Datei im aktuellen Verzeichnis oder Benutzerpfad.

Mit dem obigen Befehl erhalten Sie eine Ausgabe in einer Datei wie unten. 

9/14/2018 8:58:48 AM - Pinging 10.227.23.241 with 32 bytes of data:
9/14/2018 8:58:48 AM - Reply from 10.227.23.241: bytes=32 time=29ms TTL=117
9/14/2018 8:58:49 AM - Reply from 10.227.23.241: bytes=32 time=29ms TTL=117
9/14/2018 8:58:50 AM - Reply from 10.227.23.241: bytes=32 time=28ms TTL=117
9/14/2018 8:58:51 AM - Reply from 10.227.23.241: bytes=32 time=27ms TTL=117
9/14/2018 8:58:52 AM - Reply from 10.227.23.241: bytes=32 time=28ms TTL=117
9/14/2018 8:58:53 AM - Reply from 10.227.23.241: bytes=32 time=27ms TTL=117
9/14/2018 8:58:54 AM - Reply from 10.227.23.241: bytes=32 time=28ms TTL=117
2

Probieren Sie dies aus: 

ping -c2 -s16 sntdn | awk '{print NR "|" Laufzeit ("% Y-% m-% d_% H:% M:% S") "|" $ 0}' EIN VER QUE TE PARECE, OJALA Y TE SIRVA

1
JuanZR

Ich brauche dies auch, um das Netzwerkproblem für das Zeitlimitproblem bei der Datenbankspiegelung zu überwachen. Ich benutze den Befehlscode wie folgt:

ping -t Google.com|cmd /q /v /c "(pause&pause)>nul & for /l %a in () do (set /p "data=" && echo(!date! !time! !data!)&ping -n 2 Google.com>nul" >C:\pingtest.txt

Sie müssen lediglich Google.com in Ihren Servernamen ändern. Es funktioniert perfekt für mich. und vergessen Sie nicht, dies zu beenden, wenn Sie fertig sind. Die Datei pingtest.txt wird um 4,5 KB pro Minute (ungefähr) erhöht.

Vielen Dank für raymond.cc. https://www.raymond.cc/blog/timestamp-ping-with-hrping/

0
DBALUKE HUANG

Eine andere Powershell-Methode (ich wollte nur Fehler)

$ping = new-object System.Net.NetworkInformation.Ping
$target="192.168.0.1"
Write-Host "$(Get-Date -format 's') Start ping to $target"
while($true){
    $reply = $ping.send($target)
    if ($reply.status -eq "Success"){
        # ignore success    
        Start-Sleep -Seconds 1
    }
    else{
        Write-Host "$(Get-Date -format 's') Destination unreachable" $target

    }
}
0

Ich denke, mein Code ist das, was jeder braucht:

ping -w 5000 -t -l 4000 -4 localhost|cmd /q /v /c "(pause&pause)>nul &for /l %a in () do (for /f "delims=*" %a in ('powershell get-date -format "{ddd dd-MMM-yyyy HH:mm:ss}"') do (set datax=%a) && set /p "data=" && echo([!datax!] - !data!)&ping -n 2 localhost>nul"

anzeigen: 

[Fri 09-Feb-2018 11:55:03] - Pinging localhost [127.0.0.1] with 4000 bytes of data:
[Fri 09-Feb-2018 11:55:05] - Reply from 127.0.0.1: bytes=4000 time<1ms TTL=128
[Fri 09-Feb-2018 11:55:08] - Reply from 127.0.0.1: bytes=4000 time<1ms TTL=128
[Fri 09-Feb-2018 11:55:11] - Reply from 127.0.0.1: bytes=4000 time<1ms TTL=128
[Fri 09-Feb-2018 11:55:13] - Reply from 127.0.0.1: bytes=4000 time<1ms TTL=128

note : Code, der in einer Befehlszeile verwendet werden soll, und Sie müssen Powershell unter os vorinstalliert haben.

0
Eldar Value

Eine Verbesserung der Antwort von MC ND für Windows.
Ich brauchte ein Skript, um in WinPE ausgeführt zu werden, also habe ich Folgendes getan:

@echo off
SET TARGET=192.168.1.1
IF "%~1" NEQ "" SET TARGET=%~1

ping -t %TARGET%|cmd /q /v /c "(pause&pause)>nul & for /l %%a in () do (set /p "data=" && echo(!time! !data!)&ping -n 2 localhost >nul"

Dies kann in eine bestimmte IP-Adresse (in meinem Beispiel 192.168.1.1) hartcodiert sein oder einen übergebenen Parameter annehmen. Und wie in der Antwort von MC ND wiederholt sich der Ping etwa alle 1 Sekunde. 

0
Mike Schlueter