2010-08-16 244 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 
相關問題