在 callout 的 classifyFn 中,可以使用以下代码获取远程 IP 地址:
inFixedValues->
incomingValue[FWPS_FIELD_ALE_AUTH_CONNECT_V4_IP_REMOTE_ADDRESS].value.uint32;
// IPv4
或
inFixedValues->
incomingValue[FWPS_FIELD_ALE_AUTH_CONNECT_V6_IP_REMOTE_ADDRESS].value.byteArray16;
// IPv6
但是,我无法从 MSDN、OSR 等中找到任何文档来指定 IP 地址的“字节顺序”。
下面的链接是和我一样的问题,但是没有答案。
最佳答案
我没有使用过 IPv6 地址,但是 WFP gives you the IPv4 address in "host order" (小端)。如果需要改成“网络顺序”(big endian),可以调用htonl()函数,或者如果您正在编写内核模式驱动程序,则可以使用 RtlUlongByteSwap() .
关于kernel - WFP 中标注的 classifyFn 中指定的 IP 地址的字节顺序是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14303012/