SEの仕事をしているとネットワークの疎通テストでpingコマンドを実行することがよくあります。
テストの結果としてパケットがいつロスしたのか確認したい場合や、エビデンスとしてコマンドの実行時間を残しておきたいという場合に実施していた方法を紹介します。
Windowsでpingコマンドの結果に時間を表示する方法
pingコマンド結果に時間を表示する方法としては、pingコマンドの結果を加工して時刻を付与して表示するという形になります。
コマンドプロンプトを使用した場合はとてもややこしいのでPowerShellを使用した方法を紹介します。
Windowsのpingコマンドは、オプション指定なしでは4回で自動停止するため、打ち続けたい場合はオプション「-t」が必要になります。
PowerShellでpingコマンドに時刻を付与する
PowerShellで以下のコマンドの[宛先]部分を適宜変更して使用してください。
- Get-Dateで時刻を付与
ping -t [宛先] | %{(Get-Date).ToString() + " $_"}
コマンド実行例)
PS C:\WINDOWS\system32> ping -t 127.0.0.1 | %{(Get-Date).ToString() + " $_"} 2020/04/10 11:32:17 2020/04/10 11:32:17 127.0.0.1 に ping を送信しています 32 バイトのデータ: 2020/04/10 11:32:17 127.0.0.1 からの応答: バイト数 =32 時間 <1ms TTL=128 2020/04/10 11:32:18 127.0.0.1 からの応答: バイト数 =32 時間 <1ms TTL=128 2020/04/10 11:32:19 127.0.0.1 からの応答: バイト数 =32 時間 <1ms TTL=128 2020/04/10 11:32:20 127.0.0.1 からの応答: バイト数 =32 時間 <1ms TTL=128 2020/04/10 11:32:20 PS C:\WINDOWS\system32>
コマンドを終了する場合は[Ctrl]キー + [C] キーを押下してください。
最初と最後に時刻だけの行が出力されるのが嫌というのであれば以下のコマンドで解決します。
ping -t [宛先] | ?{$_ -ne ""} | %{(Get-Date).ToString() + " $_"}
コマンド実行例)
PS C:\WINDOWS\system32> ping -t 127.0.0.1 | ?{$_ -ne ""} | %{(Get-Date).ToString() + " $_"} 2020/04/10 11:35:46 127.0.0.1 に ping を送信しています 32 バイトのデータ: 2020/04/10 11:35:46 127.0.0.1 からの応答: バイト数 =32 時間 <1ms TTL=128 2020/04/10 11:35:47 127.0.0.1 からの応答: バイト数 =32 時間 <1ms TTL=128 2020/04/10 11:35:48 127.0.0.1 からの応答: バイト数 =32 時間 <1ms TTL=128 2020/04/10 11:35:49 127.0.0.1 からの応答: バイト数 =32 時間 <1ms TTL=128 PS C:\WINDOWS\system32>
補足
時刻表示をするとpingコマンド終了時の最後の統計(黄色マーカー部分)が表示されないので注意してください。
PS C:WINDOWSsystem32> ping -t 127.0.0.1
127.0.0.1 に ping を送信しています 32 バイトのデータ:
127.0.0.1 からの応答: バイト数 =32 時間 <1ms TTL=128
127.0.0.1 からの応答: バイト数 =32 時間 <1ms TTL=128
127.0.0.1 からの応答: バイト数 =32 時間 <1ms TTL=128
127.0.0.1 からの応答: バイト数 =32 時間 <1ms TTL=128
127.0.0.1 の ping 統計:
パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
最小 = 0ms、最大 = 0ms、平均 = 0ms
Ctrl+C
PS C:WINDOWSsystem32>
まとめ
pingコマンドを「|(パイプ)」でつないで「Get-Date」を使用することで時間を表示させることができます。他にもやり方はありますが、比較的簡単でわかりやすいものを紹介しました。
pingコマンドだけでなく他のコマンドの結果に時間を表示させたい時にも応用できるので活用してみてください。
コメント