我正在使用 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 的事情很陌生,我还没有找到读出错误的方法。如果有人对此有所了解,请告知。
根据@Codelgnoto条评论,指出@Mike答案,不可能在 Vista 及更高版本上设置它;IPv6 只有有限的支持,例如读取值 - 而不是设置它。请参阅迈克的帖子以获取简短(令人惊讶)的答案。
与当前网络适配器关联的所有 IP 地址的数组。
从 Windows Vista 开始,此属性可以包含 IPv6 地址或 IPv4 地址。有关详细信息,请参阅 WMI 中的 IPv6 和 IPv4 支持。