我试图构建一种嗅探器来捕获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地址?如何通过无线设备获得信号强度?
答案 0 :(得分: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)。我测试了很多,还在做,到目前为止我没有问题。