【问题标题】:Retrieve Single IP Address from WMI Query in C#.NET从 C#.NET 中的 WMI 查询中检索单个 IP 地址
【发布时间】:2014-01-02 12:21:34
【问题描述】:

我在 C#.NET 中使用 WMI 查询来使用以下代码检索已启用适配器上的 IP 地址;

ManagementObjectSearcher NetworkSearcher = new ManagementObjectSearcher("SELECT IPAddress FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = 'TRUE'");

foreach (ManagementObject NetworkObj in NetworkSearcher.Get())
{
     String[] arrIPAddress = (String[])(NetworkObj["IPAddress"]);

     MessageBox.Show(arrIPAddress[0]);
     //sIPAddress = arrIPAddress[0];
}

如果我将消息框输出到 arrIPAddress 数组的位置 0,我会得到两个单独的消息框,一个接一个,第一个包含第一个 NIC 的 IPv4 地址,第二个也是第一个 NIC 的 IPv6 地址。 (如果我尝试在数组中引用 1,我会分别获得第二个 NIC 的 IPv4 和 IPv6 地址)

我想要实现的是仅将第一个 IPv4 地址(显示在第一个消息框中)分配给变量“sIPAddress”,但我无法确定如何正确分隔数组。我尝试查看数组中是否有第二个元素(例如 arrIPAddres[0,1] 但没有这样的第二个属性。)

提前感谢您的任何建议。

【问题讨论】:

    标签: c# arrays


    【解决方案1】:

    这是在另一个论坛中为我回答的(链接here

    但最终提供我想要的代码如下;

    foreach( ManagementObject NetworkObj in NetworkSearcher.Get() )
    {
    string[] arrIPAddress = (string[])( NetworkObj["IPAddress"] );
    
    sIPAddress = arrIPAddress.FirstOrDefault( s => s.Contains( '.' ) );
    
    if( sIPAddress != null ) break;
    }
    

    【讨论】:

      猜你喜欢
      • 2015-06-26
      • 1970-01-01
      • 2010-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-14
      • 2013-05-10
      • 2012-08-03
      相关资源
      最近更新 更多