2013-01-22 33 views
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),所以我知道它与这个过滤器字符串有关。有任何想法吗?WinPcap过滤器字符串语法错误

回答

5

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

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

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

enter image description here

enter image description here

你Wireshark的过滤器将被转换为以下BPF代码:

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

见Wireshark的上WinPcaps页FilterCaptures部分和Filter expression syntax更多的细节。