c# - 将 Wireshark 过滤器表达式转换为 BPF
问题描述
所以我正在尝试制作一个程序来解析我网络上的某些 udp 数据包。为此,我使用 Sharppcap 和 C#。我有这个过滤器表达式,它在wireshark中完美运行:udp and frame.protocols==eth:ethertype:ip:udp:data
。
但是,当我尝试在我的 C# 应用程序中实现这一点时,我得到一个异常,因为过滤器表达式不是 BPF 有效的(我认为)。
有谁知道在 BPF 中正确的语法会达到同样的效果吗?
解决方案
好像您正在混合捕获过滤器和显示过滤器。您的过滤器的udp
一部分似乎是捕获过滤器,而其余部分是显示过滤器。显示过滤器只是隐藏了 Wireshark 中的一些结果,而捕获过滤器实际上会删除与过滤器不匹配的包。有关如何构建过滤器的信息,请参阅 pcap 过滤器文档:https ://www.tcpdump.org/manpages/pcap-filter.7.html
因此,您的 pcap 过滤器本质上是udp
,您只对 UDP 包感兴趣。
当您检查包时,显示过滤器部分由您在代码中执行。
推荐阅读
- python - 从python访问矩阵的运算符函数
- laravel-5 - 选择每页显示的项目数 Vue/Laravel 分页
- anaconda - Jupyter Notebook/Lab 未启动
- google-app-maker - 如何将两个不同的数据源绑定到一个公共下拉列表
- pandas - 应用函数包含熊猫中的外部库:如何使其更快?
- c# - 来自 IIS 的许多响应都以 OperationCanceledException 结束,导致 500 Internal server error
- sql - 按评分和日期的组合对条目进行排序
- testing - 使用 Buf 测试模块“isa-ok”
- leaflet - Leaflet.markercluster 中的图层组
- excel - 重命名 Google 图片 URL 列表并保存在新文件夹中