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 名はありませんが、ホスト名だけでなく、3 レベルの偽のドメイン名が表示されます。

編集 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 に答える