过滤GRE数据包有效负载ip / dst

时间:2013-06-26 17:49:41

标签: java ip libpcap packet-capture

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

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

有没有办法输入过滤器,根据包含的IPv4数据包的src和/或dst过滤数据包?我知道wireshark会处理这个案子,所以我试着把它包括在这里。

提前致谢。

1 个答案:

答案 0 :(得分:0)

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

因此我们将此表达式包含为过滤器

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

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