2012-01-03 105 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();