1

ホスト マシンに関連するパケットを除いて、ネットワーク上でダンプされるすべてのパケットの送信元 MAC アドレスを取得しようとしています。これを達成するには、無差別モードでホストのネットワーク インターフェイスを使用して tcpdump からデータを取得する必要があると思います。

完全なヘッダーやリンク レベルのヘッダーを取得することに関心がないことに注意してください。-eオプションは私が望むものではありません。各パケットの送信元 MAC アドレスが必要なだけで、それ以上は必要ありません。

これは私が現在行っていることです:

sudo tcpdump -I -elt -i wlan0 not host 127.0.0.1 2>> /dev/null | sed 's/ .*//'

ローカル ネットワーク インターフェイスの実際の IP アドレスに127.0.0.1置き換えられます。

これは、送信元 MAC アドレスが tcpdump によって出力される最初の情報である一部のネットワークでうまく機能します。残念ながら、これは常に私の経験ではありませんでした。tcpdump への出力はプロトコルに依存しているようで、一部のネットワークでは異なります。

MAC アドレスの正規表現に一致する最初の項目を出力するように、sed コマンドを書き直すことができると思います。

(?:[0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}

しかし、行の最初の MAC アドレスが常に送信元 MAC アドレスになるかどうかはわかりません。

tcpdump に送信元 MAC アドレスを直接出力させる方法がない場合、リンク レベル ヘッダーから raw ビットを出力させる方法はありますか? そこから、送信元 MAC アドレスをつなぎ合わせることができるはずです。

4

1 に答える 1