32

例如:我想要 abc.hyd.mycompany.com 之类的东西。我的要求是解析这个名称并初始化适当的服务。

using System.Net;

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

3 回答 3

51

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

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

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

编辑 2011/03/17:合并以下标记建议的更改。

于 2009-02-12T15:18:17.587 回答
13

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

var serverName = System.Environment.MachineName; //host name sans domain
var fqhn = System.Net.Dns.GetHostEntry(serverName).HostName; //fully qualified hostname
于 2012-03-17T20:15:42.187 回答
2

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

var dnsName = new StringBuilder();
dnsName.Append(Environment.GetEnvironmentVariable("COMPUTERNAME")).Append(".");
dnsName.Append(Environment.GetEnvironmentVariable("USERDNSDOMAIN"));
于 2009-02-12T15:25:32.547 回答