windows - IGMP WFP 过滤条件
问题描述
我正在开发一个 WFP 驱动程序来检测 IGMP 数据包并获取相同的副本以进行分析。我能够过滤 ICMP 但不能过滤 IGMP 数据包,希望 IGMP 和 ICMP 的过滤器配置没有太大变化。添加过滤器配置的代码片段,是否有任何特定的方法可用于过滤 IGMP 或我缺少的任何过滤器配置?..
filter.displayData.name = EXAMPLE_FILTER_NAME;
filter.displayData.description = EXAMPLE_FILTER_DESCRIPTION;
filter.action.type = FWP_ACTION_CALLOUT_INSPECTION;
filter.subLayerKey = EXAMPLE_SUBLAYER_GUID;
filter.weight.type = FWP_UINT8;
filter.weight.uint8 = 0xf;
filter.numFilterConditions = 1;
filter.layerKey = FWPM_LAYER_INBOUND_TRANSPORT_V4;
filter.action.calloutKey = EXAMPLE_CALLOUT_GUID;
// IGMP protocol filter condition
fwpConditions[0].fieldKey = FWPM_CONDITION_IP_PROTOCOL;
fwpConditions[0].matchType = FWP_MATCH_EQUAL;
fwpConditions[0].conditionValue.type = FWP_UINT8;
fwpConditions[0].conditionValue.uint8 = IPPROTO_IGMP;
filter.filterCondition = fwpConditions;
status = FwpmFilterAdd(filter_engine_handle, &filter, NULL, &(example_filter_id));
if (status != STATUS_SUCCESS){
DbgPrint("Failed to register example filter, status 0x%08x", status);
}
else{
DbgPrint("Example filter registered");
}
解决方案
推荐阅读
- java - 如何在 Mybatis 中为 int[] 类型的 postgres 数据库指定 javaType?
- xml - Spring with XML - 返回列表外的元素
- python - 如何将 Azure Python SDK 异常添加到 try/except 语句?
- azure - 使用 kubectl 在 AKS 集群中创建机密时出错
- sql - 如何在MSSQL中将多行合并为单行
- python - 在 VS Code 笔记本中动画/更新 matplotlib 图
- java - spring 与junit一起使用时的不同行为
- c - 在 C 中传递动态结构后无法写入内存
- java - 此版本中使用了弃用的 Gradle 功能,使其与带有 Minecraft Forge 1.12.2 的 Gradle 5.0 不兼容
- java - 不允许使用数组初始化器(扫雷的副本)