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

267 .net c#

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

tva*_*son 377

请参阅如何在C#/ .NET中查找本地计算机的FQDN?如果最后一个没有给你FQDN,你需要它.

查看有关SystemInformation.ComputerName,Environment.MachineName和Net.Dns.GetHostName之间差异的详细信息

  • 我会使用第一个来自控制台或winforms应用程序,第二个来自Web应用程序,第三个如果我需要获取FQDN.有关所需权限的信息,请参阅参考文档. (24认同)
  • 请注意,System.Enviornment.MachineName只会为您提供NetBIOS名称,因此如果主机名超过15个字符,如果您需要全名,则会遇到问题.我不能代表其他人说话. (4认同)
  • @tvanfosson:有什么区别?我的意思是,我应该使用哪一个?这有任何安全隐患吗? (3认同)
  • 我刚刚测试了这个,发现`Dns.GetHostName()` **没有**给出完全限定的名称。 (2认同)

Zac*_*son 74

System.Environment.MachineName

或者,如果您使用的是Winforms,则可以使用System.Windows.Forms.SystemInformation.ComputerName,其返回的值完全相同System.Environment.MachineName.


Alt*_*ept 47

System.Environment.MachineName
Run Code Online (Sandbox Code Playgroud)


Zac*_*ach 21

string name = System.Environment.MachineName;
Run Code Online (Sandbox Code Playgroud)


Ces*_*Gon 15

您可以使用Environment.MachineName访问计算机名称.


小智 15

下面给出了一些方法来获取机器名称或计算机名称

方法1: -

string MachineName1 = Environment.MachineName;
Run Code Online (Sandbox Code Playgroud)

方法2: -

string MachineName2 = System.Net.Dns.GetHostName();
Run Code Online (Sandbox Code Playgroud)

方法3: -

string MachineName3 = Request.ServerVariables["REMOTE_HOST"].ToString();
Run Code Online (Sandbox Code Playgroud)

方法4: -

string MachineName4 = System.Environment.GetEnvironmentVariable("COMPUTERNAME");
Run Code Online (Sandbox Code Playgroud)

有关详情,请参阅我的博客


PRR*_*PRR 14

还有一种方法: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
        }
Run Code Online (Sandbox Code Playgroud)

MSDN

WMI

WMI代码创建者

常见问题解答