2015-11-04 109 views
0

我正在編寫一個將在citrix XenApp會話中運行的C#應用​​程序。會話從Windows主機啓動。我正在嘗試獲取主機的IP v4地址。下面的代碼正確地獲取主機名(第一行)。我如何獲得IP地址?我曾經嘗試這樣做:從運行Citrix XenApp的主機獲取IP v4地址

 string host_name = Environment.ExpandEnvironmentVariables("%CLIENTNAME%"); 
     //string host_name = Dns.GetHostName(); 

     lblClientName.Text = host_name + Environment.NewLine; 
     try 
     { 
      IPHostEntry ipEntry = Dns.GetHostEntry(host_name); 

      IPAddress[] addr = ipEntry.AddressList; 
      for (int i = 0; i < addr.Length; i++) 
      { 
       if (addr[i].ToString().Length <= 13) 
        lblClientName.Text += addr[i].ToString() + Environment.NewLine; 
      } 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.StackTrace); 
     } 

回答

0

試試這個:

IPAddress[] local = Dns.GetHostAddresses(Dns.GetHostName()); 
foreach (IPAddress ip in local) 
{ 
    if (ip.AddressFamily != System.Net.Sockets.AddressFamily.InterNetworkV6) 
     lblClientName.Text += ip.ToString(); 
}