如何在.NET中获取计算机名称

352

如何在 .NET c# 中获取计算机名称


2
重复的问题 [链接](https://dev59.com/O3RB5IYBdhLWcg3w77sn) - Malachi
1
@Malachi,那个问题是关于Windows服务的。 - Sam
2
@Sam,Windows服务只是在后台运行的Windows应用程序,因此实际上它们是相同的东西。 - Malachi
1
@Malachi,是的,我知道你的意思。然而,在这个问题的答案中提到的针对ASP.NET和Winforms特定方法的参考可能不适用于那个问题。 - Sam
1
@Malachi,我想你误解了我的ASP.NET的意思。我不是指一个ASP.NET应用程序获取其客户机名称,尽管这样做(获取DNS名称)可能很容易,因为应用程序将获取客户端的IP地址。我是指ASP.NET应用程序获取它们所在主机计算机的名称。请参见此处最受欢迎的答案作为示例。 - Sam
显示剩余2条评论
13个回答

1
尝试这个。
public static string GetFQDN()
{
    string domainName = NetworkInformation.IPGlobalProperties.GetIPGlobalProperties().DomainName;
    string hostName = Dns.GetHostName();
    string fqdn;
    if (!hostName.Contains(domainName))
        fqdn = hostName + "." +domainName;
    else
        fqdn = hostName;

    return fqdn;
}

1
但是为什么不使用System.Net.NetworkInformation.IPGlobalProperties.GetIPGlobalProperties().HostName呢? - osexpert

1

还有两种更加有用的方法:

System.Environment.GetEnvironmentVariable("ComputerName")

System.Environment.GetEnvironmentVariable("ClientName"),如果用户通过Citrix XenApp或Terminal Services(也称为RDS、RDP、远程桌面)连接,则可以获取用户PC的名称。


1
FYI:Environment.MachineName和System.Windows.Forms.SystemInformation.ComputerName只返回15个字符。使用System.Net.Dns.GetHostName()来获取完整的名称。

这是对现有答案的评论。 - Jeremy Caney
这是对现有答案的评论。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接