IPを絞ってWindows標準機能でパケットキャプチャできるか試してみました。
(結果の画像はWireShark用のフォーマットに変換して表示させたものです)
テストケース1:全てのパケットを取得
netsh trace start capture=yes maxsize=5120 tracefile=E:\Download\test.etl
自分(192.168.0.192)から相手(192.168.0.16)に
http://sc820.local/
相手(192.168.0.16)から自分(192.168.0.192)に
http://192.168.0.192:8080/
netsh trace stop
結果:全てのパケットが取得できた
テストケース2:IPv4.Addressに自IPと対向先のIPの両方を指定
netsh trace start capture=yes maxsize=5120 tracefile=E:\Download\test.etl IPv4.Address=(192.168.0.192,192.168.0.16)
自分(192.168.0.192)から相手(192.168.0.16)に
http://sc820.local/
相手(192.168.0.16)から自分(192.168.0.192)に
http://192.168.0.192:8080/
netsh trace stop
結果:自分から相手、相手から自分の両方のパケットを取得できた。
テストケース3:IPv4.Addressに対向先のIPを指定
netsh trace start capture=yes maxsize=5120 tracefile=E:\Download\test.etl IPv4.Address=192.168.0.16
自分(192.168.0.192)から相手(192.168.0.16)に
http://sc820.local/
相手(192.168.0.16)から自分(192.168.0.192)に
http://192.168.0.192:8080/
netsh trace stop
結果:自分から相手、相手から自分の両方のパケットを取得できた。
テストケース4:IPv4.SourceAddressに自IPを指定
netsh trace start capture=yes maxsize=5120 tracefile=E:\Download\test.etl IPv4.SourceAddress=192.168.0.192
自分(192.168.0.192)から相手(192.168.0.16)に
http://sc820.local/
相手(192.168.0.16)から自分(192.168.0.192)に
http://192.168.0.192:8080/
netsh trace stop
結果:192.168.0.192をソースとするパケットしか記録されない。
結論:
特定の相手との通信のみパケットキャプチャしたい場合は、
IPv4.Address=対向先のIPアドレス
で取得できることがわかった。
おまけ:
このコマンドはフィルターをかけながらパケット取得しているわけではなく、
netsh trace stopコマンドを発行するまでは全てのパケットを取得しているようです。
maxsize= で最大サイズを指定できるが、このサイズはフィルター後のサイズではなく、
一時的に全てのパケットを取得する際の最大サイズ指定になります。
フィルターしたからといって長時間のパケットキャプチャは出来ないです。