首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从GetAdapterAddresses()获取子网掩码

从GetAdapterAddresses()获取子网掩码
EN

Stack Overflow用户
提问于 2014-07-11 16:27:52
回答 1查看 7.8K关注 0票数 12

我使用GetAdapterAddresses()方法获取系统上所有接口的ip地址。

我需要找到每个接口的广播地址。我可以使用IP地址和子网掩码来计算这个值,但是在IP_ADAPTER_ADDRESSES结构中看不到子网掩码。

是否有使用GetAdapterAddresses()检索子网掩码的方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-11 20:13:19

GetAdapterAddresses()只在Vista和更高版本上提供子网掩码。

当循环遍历IP_ADAPTER_ADDRESSES记录的IP_ADAPTER_ADDRESSES字段所指向的单播地址时,IP_ADAPTER_UNICAST_ADDRESS记录包括一个OnLinkPrefixLength字段。此字段在前Vista系统中不可用.此字段是子网掩码的长度(以位为单位)。对于IPv4单播地址,可以使用ConvertLengthToIpv4Mask()OnLinkPrefixLength值转换为子网掩码,然后可以使用该掩码根据需要屏蔽单播IPv4地址。

在预Vista系统上,使用GetIpAddrTable()获取可用IPv4接口的列表.MIB_IPADDRROW记录包含用于IPv4地址的dwAddr字段、用于子网掩码的dwMask字段和用于广播地址的dwBCastAddr字段。您可以在该表中循环查找GetAdapterAddresses()报告的每个单播GetAdapterAddresses()地址,然后您将拥有它们相关的子网掩码和广播IP地址。

票数 20
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24702408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档