我正在尝试从配置 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
)没有问题,所以我知道它与这个过滤器字符串有关。有任何想法吗?
问问题
2467 次
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 回答