【问题标题】:WinPcap filter string syntax errorWinPcap 过滤字符串语法错误
【发布时间】:2013-01-23 03:27:22
【问题描述】:

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

【问题讨论】:

    标签: c# wireshark packet-capture winpcap


    【解决方案1】:

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

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

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

    您的 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-07
      • 2013-11-14
      • 2017-06-24
      • 2014-08-30
      • 1970-01-01
      • 2013-05-30
      • 1970-01-01
      相关资源
      最近更新 更多