我正在使用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事情很陌生,我还没有找到一种方法来读出错误。如果有人有这方面的指针,请告诉。
答案 0 :(得分:0)
Per @Codelgnoto comment,指向@Mike答案,不可能在Vista及更高版本上设置它; IPv6仅提供有限的支持,例如读取值 - 不设置它。请参阅Mike的帖子,了解简短(令人惊讶)的答案。
答案 1 :(得分:0)
与当前网络适配器关联的所有IP地址的数组。
从Windows Vista 开始,此属性可以包含IPv6地址或IPv4地址。有关详细信息,请参阅我Pv6 and IPv4 Support in WMI。