小编Phi*_*lac的帖子

如何检索IP v6子网掩码长度

我正在编写一个必须在Windows 7计算机上获得网络适配器配置的应用程序,就像在Windows网络适配器配置面板中完成的那样:

在此输入图像描述

到目前为止,NetworkInterface.GetAllNetworkInterfaces() 除了子网前缀长度之外,我几乎可以获得所需的所有信息.

我知道,它可以从C++ STRUC检索PMIB_UNICASTIPADDRESS_TABLE通过OnLinkPrefixLength,但我想留在.NET.

我还看了一下Win32_NetworkAdapterConfigurationWMI类,但它似乎只返回了IP v4子网掩码.

我也知道一些信息(不是前缀长度,据我所知)在注册表中:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\TCPIP6\Parameters\Interfaces\{CLSID}
Run Code Online (Sandbox Code Playgroud)

我还使用SysInternals ProcessMon尝试在保存网络适配器设置时获得任何有用的东西但却一无所获......

那么,有没有什么干净的.NET方法来获得这个价值?(从注册表中获取它不会有问题)

编辑:网关

这与实际问题无关,但对于需要检索整个网络适配器IPv6配置的用户,该IPInterfaceProperties.GatewayAdresses属性仅支持IPv4网关.正如下面的答案评论中提到的,在.NET Framework 4.5之前获取整个信息的唯一方法是调用WMI.

.net c# registry ipv6 windows-7

10
推荐指数
1
解决办法
2425
查看次数

标签 统计

.net ×1

c# ×1

ipv6 ×1

registry ×1

windows-7 ×1