【问题标题】:Checking if IPv6 is enabled on Windows 7 using C#使用 C# 检查是否在 Windows 7 上启用了 IPv6
【发布时间】:2013-02-10 03:34:05
【问题描述】:

我正在尝试使用 C# 编写一个程序,作为我公司的多功能工具。我们希望在这个工具中做的一件事是确定 IPv6 是否启用/绑定到我们的 Windows 7 机器上的局域网连接网络适配器。我不是在寻找它有一个地址,只是想知道它是否在该适配器上启用或禁用。我不确定如何编码。从我在网上找到的内容来看,似乎我应该使用 System.Net.Configuration 和 Ipv6Element 来检查它是否已启用,但我不知道如何编码。我希望能够在文本框中显示它是启用还是禁用,所以我猜我会使用布尔值。有人可以指出我正确的方向吗?谢谢!

【问题讨论】:

标签: c# ipv6


【解决方案1】:

您可以使用此属性测试操作系统是否支持 IPv6:

bool supportsIpV6 = System.Net.Sockets.Socket.OSSupportsIPv6;

【讨论】:

  • 谢谢你的建议,hmemcpy。当我使用 if/else 语句尝试此操作时,即使我取消选中本地连接属性中的框,它也始终返回语句的真实部分。我想我的问题可能不是很具体。我不太想知道我的操作系统是否支持 IPv6,因为我知道它已启用/绑定到网络适配器。很抱歉造成混乱,我更新了我的问题以更准确。
  • 这是我根据您的建议尝试的代码.... bool supportsIpV6 = System.Net.Sockets.Socket.OSSupportsIPv6; if (supportsIpV6 == true) { ipStatusTextBox.Text = "IPv4 and IPv6"; } else if (supportsIpV6 == false) { ipStatusTextBox.Text = "IPv4 Only"; }
  • 请注意,这在 Windows XP 上不起作用 - 实际上它会引发一个非常讨厌的错误(“过程入口点 _except_handler4_common 无法位于动态链接库 msvcrt.dll 中”)
【解决方案2】:

您可以使用 System.Net.NetworkInformation 命名空间使用以下代码准确查询您要求的内容(如果为特定网络适配器启用或禁用了 IPv6):

using System.Net.NetworkInformation;

// ...

NetworkInterface[] allInterfaces = NetworkInterface.GetAllNetworkInterfaces();
NetworkInterface firstInterface = allInterfaces[0];
bool interfaceSupportsIPv6 = firstInterface.Supports(NetworkInterfaceComponent.IPv6);

MSDN 上的文档:Link

【讨论】:

    【解决方案3】:

    我已使用此代码对其进行测试。请注意,它会测试是否启用了 IPV6,而不是测试网卡是否与 IPV6 兼容:

    public static bool InterfaceHasIpv6Enabled(NetworkInterface @interface)
    {
      try
      {
        var properties = @interface.GetIPProperties().GetIPv6Properties();
        return properties.Index > -999;
      }
      catch (System.Net.NetworkInformation.NetworkInformationException)
      {
        return false;
      }
      catch (Exception ex)
      {
        throw ex;
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2011-01-06
      • 2011-03-07
      • 2014-07-25
      • 2011-09-29
      • 2017-09-04
      • 1970-01-01
      • 2012-04-10
      • 2021-10-07
      • 2011-10-03
      相关资源
      最近更新 更多