如何在。net c#中获取计算机名


当前回答

我为我的web项目设置<p>括号的.InnerHtml为用户的计算机名,执行以下操作:

HTML:

    <div class="col-md-4">
       <h2>Your Computer Name Is</h2>
       <p id="pcname" runat="server"></p>
       <p>
           <a class="btn btn-default" href="#">Learn more &raquo;</a>
       </p>
    </div>

C#:

using System;
using System.Web.UI;

namespace GetPCName {
   public partial class _Default : Page {
    protected void Page_Load(object sender, EventArgs e) {            
        pcname.InnerHtml = Environment.MachineName;
    }
   }
}

其他回答

System.Environment.MachineName

或者,如果你使用Winforms,你可以使用System.Windows.Forms.SystemInformation。ComputerName,返回与System.Environment.MachineName完全相同的值。

试试这个:

string[] computer_name = System.Net.Dns.GetHostEntry(System.Web.HttpContext.Current.Request.ServerVariables["remote_addr"]).HostName.Split(new Char[] { '.' });
return computer_name[0].ToString();

您可以使用Environment.MachineName访问机器名。

2个更有用的方法: System.Environment。GetEnvironmentVariable(“ComputerName”)

System.Environment。GetEnvironmentVariable("ClientName")来获取用户PC的名称,如果他们通过Citrix XenApp或终端服务(又名RDS, RDP,远程桌面)连接

还有一种方法:Windows Management Instrumentation

using System.Management;

try
        {
            ManagementObjectSearcher searcher =
                new ManagementObjectSearcher("root\\CIMV2",
                "SELECT Name FROM Win32_ComputerSystem");

            foreach (ManagementObject queryObj in searcher.Get())
            {
                Console.WriteLine("-----------------------------------");
                Console.WriteLine("Win32_ComputerSystem instance");
                Console.WriteLine("-----------------------------------");
                Console.WriteLine("Name: {0}", queryObj["Name"]);
            }
        }
        catch (ManagementException e)
        {
            // exception handling
        }

MSDN

WMI

WMI代码创建器

FAQs