WinPcap过滤器字符串语法错误

时间:2013-01-22 18:24:59

标签: c# wireshark packet-capture winpcap

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

1 个答案:

答案 0 :(得分: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中的FilterCaptures部分和WinPcaps页面上的Filter expression syntax