2012-01-03 100 views
0

我正在寻找一种方法,可以识别系统是否连接到网络,或在系统上安装虚拟机时获取本地ip地址。 这是返回的本地IP地址代码:使用c获取本地系统ip地址#

public static string LocalIPAddress() 
     { 
      IPHostEntry host; 
      string localIP = ""; 
      host = Dns.GetHostEntry(Dns.GetHostName()); 
      foreach (IPAddress ip in host.AddressList) 
      { 
       if (ip.AddressFamily.ToString() == "InterNetwork") 
       { 
        localIP = ip.ToString(); 
       } 
      } 
      return localIP; 
     } 

但是,当系统没有连接到网络时,它会返回其他虚拟机的IP地址。
我也发现这种方法 System.Net.NetworkInformation.NetworkInterface.isconnected方法可用,但即使网络电缆拔掉,它仍然返回true。
有什么方法可以确定系统是否连接?

+0

也许这可以帮助:http://stackoverflow.com/questions/515436/如何对获得互联网,IP – Feroc 2012-01-03 08:44:16

回答

2

试试这个

using System.Net; 
Private string GetIP(){ 
string strHostName = ""; 
strHostName = System.Net.Dns.GetHostName(); 
IPHostEntry ipEntry = System.Net.Dns.GetHostEntry(strHostName); 
IPAddress[] addr = ipEntry.AddressList; 
return addr[addr.Length-1].ToString();} 
0

下面的行会做让你的本地IP地址

string ipadress = Dns.GetHostEntry(Dns.GetHostName()) 
.AddressList.FirstOrDefault(ip => ip.AddressFamily == AddressFamily.InterNetwork) 
.ToString();