如何在C#中获取本地计算机名称?


Answers:




45

来自 链接文字

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

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之间的区别


13
它们返回相同的东西还是它们之间有些区别?
epotter

19

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

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

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


在计算机设置中,有一个部分用于“计算机名称”和“完整计算机名称”-这是我发现只有当其他人都给出计算机名称时才获得“完整计算机名称”的唯一方法。谢谢!
user2494584

1
嗯,只是给localhost我,不是FQDN
Thufir

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();
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.