2013-06-21 105 views
-2

正试图检索IP地址。 但它给这个例外“对象引用未设置为对象的实例。”

对象引用未设置为对象的实例。

ManagementScope scope = new ManagementScope("\\\\.\\ROOT\\cimv2"); 
ObjectQuery query1 = new ObjectQuery("SELECT * FROM Win32_NetworkAdapterConfiguration"); 
ManagementObjectSearcher searcher1 = new ManagementObjectSearcher(scope, query1); 
ManagementObjectCollection queryCollection = searcher1.Get(); 

foreach (ManagementObject m in queryCollection) 
{ 

    listBox2.Items.Add(m["DefaultIPGateway"].ToString()); 
} 
+0

你有没有试着调试代码?什么成员没有设置? – PVitt

+0

太糟糕的代码不起作用。你有问题吗? –

+0

它在哪一行发生错误?哪个值为空? –

回答

0

尝试:

ManagementScope scope = new ManagementScope("\\\\.\\ROOT\\cimv2"); 
ObjectQuery query1 = new ObjectQuery("SELECT * FROM Win32_NetworkAdapterConfiguration"); 
ManagementObjectSearcher searcher1 = new ManagementObjectSearcher(scope, query1); 
ManagementObjectCollection queryCollection = searcher1.Get(); 

foreach (ManagementObject m in queryCollection) 
{ 
    if(m["DefaultIPGateway"] != null) 
    { 
    listBox2.Items.Add(m["DefaultIPGateway"].ToString()); 
    } 
} 
+0

但它没有给出适当的输出 – user2354516

+0

正确的输出检查,如何获得IP地址或添加另一个问题呢?如果您的空引用问题得到解决,请标记为答案。 –

+0

你正在获取网络的IP地址?在另一个问题中充分考虑情况。 –

0

尝试调试,但它看起来对我来说,执行下列操作之一:

  1. searcher1为空。
  2. 在foreach中,m [“DefaultIPGateway”]返回null
  3. listbox2为空。
相关问题