From what I have seen, in the MSDN documentation and in other questions here on SO, there are four ways to get the local machine name.
Environment.MachineName;
System.Net.Dns.GetHostName();
System.Windows.Forms.SystemInformation.ComputerName;
System.Environment.GetEnvironmentVariable("COMPUTERNAME");
Is there a differnece in what they methods will return or will they all return the exact same thing all of the time?
Note: I first saw the list in this post: How do I get the local machine Name?
Environment.MachineName
and System.Windows.Forms.SystemInformation.ComputerName
are identical and returns the computer's NetBIOS name. This name is restricted to 15 characters and only visible on the LAN.
System.Net.Dns.GetHostName()
returns the computer's TCP/IP based hostname. By adding a domain suffix to the hostname you can resolve your computer's IP address across LANs / on the internet.
System.Environment.GetEnvironmentVariable("COMPUTERNAME")
returns the computer name set during installation. NetBIOS and hostname are initially set to the same name.