1

我正在尝试从配置 UI 生成 WinPcap 过滤器。现在我有一个看起来像这样的过滤器字符串ip && (((ip.src == 10.10.10.10 && (tcp.port == 10 || udp.port == 10)) && (ip.dst == 20.20.20.20 && (tcp.port == 20 || udp.port == 20))))。当我将它输入到 Wireshark 时,这个过滤器是有效的,但是当我尝试通过 WinPcap 编译它时,我得到一个syntax error. 我已经编译了一个简单的过滤器(ip and tcp)没有问题,所以我知道它与这个过滤器字符串有关。有任何想法吗?

4

1 回答 1

5

您可能需要指定协议,而不仅仅是将ip. 例如

(ip.proto == TCP) && ...

因此,您使用的过滤器选项符合 wireshark 语法。您需要使用BPF 格式来捕获数据,以便能够在 wireshark 和 WinPcap 之间来回切换。您可以使用您希望收集的特定界面上的“捕获选项”来测试您的过滤器。

在此处输入图像描述

在此处输入图像描述

您的 wireshark 过滤器将被转换为以下 BPF 代码:

ip && (((ip src 10.10.10.10 && (port 10)) && (ip dst 20.20.20.20 && (port 20))))

有关详细信息,请参阅 Wireshark 中的FilterCaptures部分和WinPcaps 页面上的过滤器表达式语法。

于 2013-01-22T19:01:35.767 回答