2010-08-16 113 views

回答

53

东西要记住的是,System.Environment.MachineName;System.Windows.Forms.SystemInformation.ComputerName;会给你机器的NETBIOS名(限15个字符)。

如果你想完全基于TCP/IP的主机名,你可以使用Dns.GetHostName()

string hostName = System.Net.Dns.GetHostName(); 

或者你可以使用:

System.Environment.GetEnvironmentVariable("COMPUTERNAME"); 

将返回完整的计算机名安装过程中设置。

+3

那么,文档是如何实现它有点模糊,但它暗示它需要a)工作网络连接,b)往返DNS服务器和c)DNS实际上知道你的机器名称(它不必,除非你的服务器) – 2010-08-16 16:09:53

+0

@James Curran - 当然。但是Environment.MachineName将计算机名称限制为15个字符的NETBIOS名称。 GetHostName将检索完整的基于TCP/IP的主机名。 – GenericTypeTea 2010-08-16 16:21:38

+2

'System.Environment.GetEnvironmentVariable(“COMPUTERNAME”);'仅限于Windows – gman 2016-01-28 03:10:08

18

除非我错了你想做的事..

System.Environment.MachineName 
2
System.Windows.Forms.SystemInformation.ComputerName; 
2

我的命名空间包含像许多伟大的 “助手” 功能:

My.Computer.Name 
+6

这似乎仅限于VB.NET,并且是该语言专用的:http://msdn.microsoft.com/en-us/vstudio/ms789188.aspx – 2012-09-07 17:37:11

4

要获得完全合格的名称,用途:

System.Net.Dns.GetHostEntry("").HostName 
相关问题