【发布时间】: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] 但没有这样的第二个属性。)
提前感谢您的任何建议。
【问题讨论】: