如何在C#中找到我的机器的完全限定主机名?

时间:2009-02-12 14:59:43

标签: c# environment-variables

Ex:我想要像abc.hyd.mycompany.com这样的东西。我的要求是解析此名称并初始化适当的服务。

using System.Net;

Dns.GetHostName() // doesn't return fully qualified name it just gives "abc" 

3 个答案:

答案 0 :(得分:46)

您可以像这样获取整个DNS字符串:

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

我工作时没有完整的DNS名称,但它确实给了我一个三级虚假域名,而不仅仅是主机名。

编辑2011/03/17:通过以下标记建议的公司更改。

答案 1 :(得分:12)

我使用了这种非常相似的方法:

var serverName = System.Environment.MachineName; //host name sans domain
var fqhn = System.Net.Dns.GetHostEntry(serverName).HostName; //fully qualified hostname

答案 2 :(得分:2)

如果上述方法不起作用,您也可以尝试从环境中检索它:

var dnsName = new StringBuilder();
dnsName.Append(Environment.GetEnvironmentVariable("COMPUTERNAME")).Append(".");
dnsName.Append(Environment.GetEnvironmentVariable("USERDNSDOMAIN"));