
Windows 10 システムで ICMP 要求 (例: ping) を検出する方法を探しています。残念ながら、ICMP はポートに依存しないため、netstat では機能しません。そのため、TCPview などの他の軽量ツールも機能しません。
Windows 10 システムで ICMP を監視するためのネイティブ コマンドはありますか? あるいは、他に解決策がない場合は、できれば Wireshark よりもシンプルで軽量なサードパーティ ツールを使用します。ヒントや解決策があれば、ぜひ教えてください。
答え1
残念ながら、ICMPはポートに依存しないため、netstatでは動作しません。
いいえ、ICMPハンドラが通常のソケットただし、IP スタックに組み込まれています。ただし、たとえば UDP または TCP パケットを生成するために「raw ソケット」を使用するプログラム (たとえば、nmap が該当すると思います) がある場合、netstat でもそれらが表示されません。
また、ICMPはデータグラムベースのプロトコルであり、単一の「未接続」ソケットがあらゆるソースからパケットを受信できるため、いずれにしても機能しない。たとえそれがUDP(するnetstat に表示される場合、*:*
サーバーが 50 の異なるクライアントに応答している場合でも、通常は 1 つの「Foreign Address:」ソケットのみが表示されます。
Windows 10 システムで ICMP を監視するネイティブ コマンドはありますか?
Windows 10 はpktmon
2018 年にリリースされました。
pktmon filter add -p ICMP
pktmon start --etw -m real-time
pktmon filter add -p ICMP
pktmon start -c
...
pktmon stop
pktmon etl2txt .\PktMon.etl
トレースはさまざまな OS レイヤーで実行されるため、同じパケットが複数の Windows コンポーネントを通過しているように見えます (1 か所でのみ取得する Npcap とは異なります)。
PktmonのETLキャプチャファイルも.pcapng に変換Wireshark で使用するため。
あるいは、他に解決策がない場合は、サードパーティのツールを使用します。できれば、Wiresharkよりもシンプルで軽量なものが望ましいです。
tshark
Wireshark には、ターミナルにパケットをキャプチャする (tcpdump に非常に似ていますが、Wireshark の解析機能のみを備えています)コマンドライン ツールと、dumpcap
生の pcapng ファイルを出力する (オプション付きの tcpdump と同様) コマンドライン ツールの 2 つが付属しています-w
。
(他のツールも、Wireshark と一緒にインストールされる同じ Npcap ドライバーを直接使用する場合があります。たとえば、そのための tcpdump ポートが存在する可能性があります。ただし、Wireshark には特別な例外がある Npcap のライセンスに注意する必要があります。これらのツールの一部では、Npcap を「WinPcap 互換」モードでインストールする必要がある場合もあります。)
答え2
ICMPプローブを検出できる無料ツールは ワイヤーシャーク。
ネットワーク アダプターを選択してキャプチャを開始したら、表示フィルターを ICMP に設定できます。
以下は検出の例ですping localhost
: