0

我正在使用 ManagementClass 构建此 IP 管理器工具,但在尝试通过 WMI 设置 IPv6 地址时遇到问题。

我正在使用的代码的相关部分如下:

ManagementBaseObject ipParams = wmiManager.GetMethodParameters("EnableStatic");
ipParams["IPAddress"] = ipAddresses; // { "fe80::fcd8:70b5:89f3:825d" }
ipParams["SubnetMask"] = netmasks;   // { "64" }
wmiObject.InvokeMethod("EnableStatic", ipParams, null);

当带有子网掩码(整数格式)的 IPv6 地址(标准格式)传递给 EnableStatic 方法时,它似乎没有应用它。

我认为验证子网掩码可能有问题,但我不确定是否有适用于 IPv6 的完整子网掩码表示法。再说一遍,它也可能是对 IP 地址或完全不同的东西的验证。

我对这个 ManagementClass 东西很陌生,我还没有找到读出错误的方法。如果有人对此有一些指示,请告诉。

4

2 回答 2

0

Per @Codelgnoto comment, which points to @Mike answer, it is impossible to set this on Vista and higher; IPv6 has only limited support, such as reading the value - not setting it. See Mike's post for brief (surprising) answer.

于 2012-11-04T06:14:29.240 回答
0

与当前网络适配器关联的所有 IP 地址的数组。

从 Windows Vista 开始,此属性可以包含 IPv6 地址或 IPv4 地址。有关详细信息,请参阅WMI 中的 I Pv6 和 IPv4 支持

于 2015-04-08T06:52:56.900 回答