lum*_*ck4 1 c# packet-capture winpcap wireshark
我试图从配置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.我编译了一个简单的filter(ip and tcp)没有问题,所以我知道它与这个过滤器字符串有关.有任何想法吗?
您可能需要指定协议而不是仅仅放置ip.例如
(ip.proto == TCP) && ...
Run Code Online (Sandbox Code Playgroud)
因此,您使用的过滤器选项符合wireshark语法.您需要使用BPF格式捕获数据,以便能够在wireshark和WinPcap之间来回切换.您可以使用要收集的特定界面上的"捕获选项"来测试您的过滤器.


您的wireshark过滤器将转换为以下BPF代码:
ip && (((ip src 10.10.10.10 && (port 10)) && (ip dst 20.20.20.20 && (port 20))))
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅Wireshark中的FilterCaptures部分和WinPcaps页面上的Filter表达式语法.