ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_Processor");
foreach (ManagementObject info in searcher.Get())
{
string[] item1 = { "IPAddress", info["IPAddress"].ToString() };
listView2.Items.Add(new ListViewItem(item1));
}
我认为是ip地址格式的特殊性而送不进去的,怎么解决呢?
public void UseWMI()
{
string query = "SELECT * FROM Win32_NetworkAdapterConfiguration"
+ " WHERE IPEnabled = 'TRUE'";
ManagementObjectSearcher moSearch = new ManagementObjectSearcher(query);
ManagementObjectCollection moCollection = moSearch.Get();
// Every record in this collection is a network interface
foreach(ManagementObject mo in moCollection)
{
Console.WriteLine("HostName = " + mo["DNSHostName"]);
Console.WriteLine("Description = " + mo["Description"]);
// IPAddresses, probably have more than one value
string[] addresses = (string[])mo["IPAddress"];
foreach(string ipaddress in addresses)
{
Console.WriteLine("IPAddress = " + ipaddress);
}
// IPSubnets, probably have more than one value
string[] subnets = (string[])mo["IPSubnet"];
foreach(string ipsubnet in subnets)
{
Console.WriteLine("IPSubnet = " + ipsubnet);
}
// DefaultIPGateways, probably have more than one value
string[] defaultgateways = (string[])mo["DefaultIPGateway"];
foreach(string defaultipgateway in defaultgateways)
{
Console.WriteLine("DefaultIPGateway = " + defaultipgateway);
}
}
}
1. Use DNS
2. Use WMI
3. Use Windows Registry 参见Finding IP Address Information
http://www.codeproject.com/KB/IP/obafindingipinformation.aspx