kernel - WFP 中标注的 classifyFn 中指定的 IP 地址的字节顺序是什么?

标签 kernel ip-address firewall endianness wfp

在 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 地址的“字节顺序”。

下面的链接是和我一样的问题,但是没有答案。

http://www.osronline.com/showthread.cfm?link=225090he

最佳答案

我没有使用过 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/

相关文章:

mysql - 允许 App Engine 标准环境连接到 Compute Engine Mysql

协同内核开发

linux - 如何理解 objdump 的输出,关于间接 jmp?

apache2 - 本地主机无法连接到所需的虚拟主机

java - 在 JSP 页面中,我想获取查看该页面的用户的 IP 地址。如何?

electron - 我想阻止 Electron 应用程序与外界通信

ruby-on-rails - 是否有用于操作 la iptables 数据包过滤链的 Ruby API?

c - Linux 内核空间中的动态内存分配

linux - 我如何允许*任何*用户从 `/sys/kernel/debug/...` 读取文件?

c# - 在当前子网中找到免费 IP 地址的最简单方法?