【发布时间】:2016-07-07 04:51:10
【问题描述】:
我正在尝试构建一种嗅探器来捕获 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地址?如何通过无线设备获取信号强度?
【问题讨论】:
-
如果同时删除两个 if 语句,是否会捕获数据包?
-
MAC 地址在帧头中,而不是包头中。帧在其标头中具有第 2 层 (MAC) 地址,数据包在其标头中具有第 3 层 (IP) 地址,而分段在其标头中具有第 4 层(端口)地址。帧封装数据包,这些数据包封装了封装应用程序数据的段。当你想做这种事情时,你应该研究OSI Model。
标签: c# networking pcap.net