2015-11-04 112 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(); 
}