私はWi-Fiプローブ要求を捕まえるためのスニッファを作成しようとしています。キャッチされたパケットのMACアドレスはどのように取得できますか?
Wiresharkでは、すべてのブロードキャストパケットをARPプロトコルでリッスンしていることを示すeth.type eq 0x0806 and eth.dst eq ff:ff:ff:ff:ff:ff
のようなフィルタを設定します。私はまだ信号強度を監視する方法を見つけていないが、多分私はある日それを見つけるだろう...
私はPcap.Netで同じことをしたいと思います。だから、一度パケットが、私は
//Check if the packet is Ethernet
if (packet.DataLink.Kind == DataLinkKind.Ethernet)
{
//Check if the Ethernet packet is ARP
if (packet.Ethernet.EtherType == EthernetType.Arp)
{
[...]
}
}
を見て、catchedされていますが、パケットがWiresharkのでcatchedされているのに対し、何も私のC#のコードでcatchedされません。
別の質問、どのようにパケットの送信元のMACアドレスを取得するには?ワイヤレスデバイスで信号強度を取得するにはどうすればいいですか?
両方のif文を削除すると、パケットをキャッチしますか? – wimh
MACアドレスはパケットヘッダーではなくフレームヘッダーにあります。フレームはヘッダーにレイヤー2(MAC)アドレスを持ち、パケットはヘッダーにレイヤー3(IP)アドレスを持ち、セグメントはヘッダーにレイヤー4(ポート)アドレスを持っています。フレームは、アプリケーションデータをカプセル化するセグメントをカプセル化するパケットをカプセル化します。このようなことをしたいときは、[OSI Model](https://en.wikipedia.org/wiki/OSI_model#Description_of_OSI_layers)を勉強する必要があります。 –