【问题标题】:enable ipv6 for interface in windows为windows中的接口启用ipv6
【发布时间】:2016-12-07 13:21:05
【问题描述】:

如何以编程方式为给定接口启用 IPv6?可以是 netsh、WMI 或任何可以从 C# 程序调用的东西。相当于点击界面属性中的复选框。

【问题讨论】:

    标签: .net windows ipv6


    【解决方案1】:

    这工作(Windows 8+):

    static void SetIPv6State(Guid interfaceId, bool state)
    {
        var scope = new ManagementScope("\\\\.\\ROOT\\StandardCimv2");
        var query = new ObjectQuery("SELECT * FROM MSFT_NetAdapterBindingSettingData");
        var methodName = state ? "Enable" : "Disable";
        using (var searcher = new ManagementObjectSearcher(scope, query))
        using (var bindings = searcher.Get())
        {
            var binding = bindings.Cast<ManagementObject>().Single(obj => (string)obj["InstanceID"] == interfaceId.ToString("B").ToUpper() + "::ms_tcpip6");
            var parameters = binding.GetMethodParameters(methodName);
            binding.InvokeMethod(methodName, parameters, new InvokeMethodOptions());
        }
    }
    

    Windows 7 需要 C++ 代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-21
      • 2018-04-27
      • 2015-11-06
      • 2017-01-26
      • 1970-01-01
      • 1970-01-01
      • 2018-09-05
      • 1970-01-01
      相关资源
      最近更新 更多