0

我正在使用 libjpcap 从网络捕获数据包并在我的应用程序中处理它们。目前,我们可以使用过滤器,以便我们仅从某个目的地捕获。例如,src host 10.159.2.3将仅捕获来自该端点的流量。

最近我们添加了GRE数据包支持,但过滤器没有按用户预期工作。在我们的例子中,GRE 数据包的有效负载是 IPv4 数据包。

有没有办法输入一个过滤器,该过滤器将根据包含的 IPv4 数据包的 src 和/或 dst 过滤数据包?我知道 Wireshark 将处理此案,因此我试图将其包含在此处。

4

1 回答 1

0

我找到了一种方法来做到这一点。使用pcap 过滤器表达式,我们可以按偏移量和长度进行过滤。通过使用wireshark,我们检查了.pcap捕获并确定有效载荷ip数据包(GRE内部的那个)上的src地址与外部ip数据包的标头有54个字节偏移量。有效载荷 ip 数据包的 dst 地址的字节偏移量为 58。

所以我们把这个表达式作为一个过滤器

(ip[54:4] = 0X0ac004ef) or (ip[58:4] = 0X0ac004ef)

其中十六进制数表示转换为十六进制的连接八位字节。我们要过滤的ip。

于 2013-06-26T20:55:56.417 回答