78

如何获取本地机器名称?

4

5 回答 5

155

System.Environment.MachineName

除非机器名称超过 15 个字符,否则它会起作用。

于 2009-03-19T13:57:18.327 回答
49

源头

获取本地网络/机器名称的四种方法:

string name = Environment.MachineName;
string name = System.Net.Dns.GetHostName();
string name = System.Windows.Forms.SystemInformation.ComputerName;
string name = System.Environment.GetEnvironmentVariable("COMPUTERNAME");

更多信息请参见: SystemInformation.ComputerName、Environment.MachineName 和 Net.Dns.GetHostName 之间的区别

于 2009-03-19T14:09:09.860 回答
47

您应该可以使用System.Environment.MachineName它。它是一个返回包含计算机的 netBIOS 名称的字符串的属性:

http://msdn.microsoft.com/en-us/library/system.environment.machinename.aspx

于 2009-03-19T13:58:49.853 回答
20

如果您想要本地计算机的 FQDN(完全限定域名),您可以使用

System.Net.Dns.GetHostEntry("localhost").HostName

其他方法将仅返回本地名称,没有任何特定于域的信息。例如,对于计算机myComp.myDomain.com,之前的方法将返回myComp,而GetHostEntry方法将返回myComp.myDomain.com

于 2011-11-23T11:58:00.653 回答
0

我的计算机名称超过 15 个字符,所以我使用 hostname.exe 来获取全长名称:

Process proc = new Process();
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.FileName = "c:/windows/system32/hostname.exe";
proc.Start();
var hostName = proc.StandardOutput.ReadLine();
于 2020-04-29T02:07:42.257 回答