【问题标题】:Setting static IPv6 IP-address with WMI (C#)使用 WMI (C#) 设置静态 IPv6 IP 地址
【发布时间】:2012-09-27 12:16:10
【问题描述】:

我正在使用 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 很陌生,我还没有找到读出错误的方法。如果有人对此有一些指示,请告诉。

【问题讨论】:

标签: c# wmi ipv6


【解决方案1】:

根据@Codelgnoto comment,指向@Mike 的答案,在Vista 及更高版本上无法设置; IPv6 仅具有有限的支持,例如 读取 值 - 不设置它。有关简短(令人惊讶的)答案,请参阅 Mike 的帖子。

【讨论】:

    【解决方案2】:

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

    从 Windows Vista 开始,此属性可以包含 IPv6 地址或 IPv4 地址。详情请见IPv6 and IPv4 Support in WMI

    【讨论】:

      猜你喜欢
      • 2023-03-05
      • 2022-11-22
      • 2020-10-21
      • 2020-04-26
      • 1970-01-01
      • 2022-11-27
      • 2012-11-28
      • 2015-11-03
      • 2019-06-21
      相关资源
      最近更新 更多