0

我正在尝试构建一种嗅探器来捕获 wifi 探测请求。

使用 Wireshark,我只需设置一个过滤器eth.type eq 0x0806 and eth.dst eq ff:ff:ff:ff:ff:ff,告诉我我正在侦听 ARP 协议上的所有广播数据包。我还没有找到如何监控信号强度的方法,但也许有一天我会找到它......

我想对 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)
   {
      [...]
   }
}

但是,虽然数据包是用 Wireshark 捕获的,但我的 C# 代码没有捕获任何东西。

另一个问题,如何获取数据包源的 MAC 地址?如何使用无线设备获取信号强度?

4

1 回答 1

0

获取MAC地址而言,也许我的这个建议可以帮助你。目前我正在使用 pcap.net 编写嗅探器。它在我的 LAN 连接上工作正常。但是当笔记本电脑与 wifi 网络连接时,我的代码没有捕获任何流量。它曾经做过,但在最后几次尝试中,它只是未能捕获任何类型的流量。我认为这很明显,因为

pcap.net 不包含任何 AirPcap 功能。

顺便说一句,我希望你已经看过 pcap.net 的示例代码。他们在那里使用了一个名为

... ... PacketHandler(Packet packet){ ... }

在这里面我添加了这两行。它对我来说很好。

private void PacketHandler(Packet packet)
{
    string sourceMac = packet.Ethernet.Source.ToString();
    string destinationMac = packet.Ethernet.Destination.ToString();
    //--more code
}

现在它正在做它的工作。我已经与 NetworkMiner 一起测试了我的嗅探器(C# 中的另一个嗅探器项目,它比我的要好得多:v)。我测试了很多,仍然在做,到目前为止我没有任何问题。

于 2016-04-17T18:55:55.107 回答