【发布时间】:2010-10-14 07:40:46
【问题描述】:
如何获取本地机器名?
【问题讨论】:
如何获取本地机器名?
【问题讨论】:
【讨论】:
从 source
获取本地网络/机器名称的四种方法:
string name = Environment.MachineName;
string name = System.Net.Dns.GetHostName();
string name = System.Windows.Forms.SystemInformation.ComputerName;
string name = System.Environment.GetEnvironmentVariable("COMPUTERNAME");
更多信息请访问: Difference between SystemInformation.ComputerName, Environment.MachineName, and Net.Dns.GetHostName
【讨论】:
您应该可以为此使用System.Environment.MachineName。它是一个属性,返回一个包含计算机的 netBIOS 名称的字符串:
http://msdn.microsoft.com/en-us/library/system.environment.machinename.aspx
【讨论】:
如果要本地计算机的FQDN(全限定域名),可以使用
System.Net.Dns.GetHostEntry("localhost").HostName
其他方法将只返回本地名称,没有任何特定于域的信息。例如,对于计算机myComp.myDomain.com,前面的方法将返回myComp,而GetHostEntry 方法将返回myComp.myDomain.com
【讨论】:
localhost,而不是FQDN。
我的计算机名称超过 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();
【讨论】: