Подтвердить что ты не робот

Как найти полное имя хоста моего компьютера в С#?

Пример: Я хочу что-то вроде abc.hyd.mycompany.com. Мое требование - разобрать это имя и инициализировать соответствующую службу.

using System.Net;

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

Ответ 1

Вы можете получить всю строку DNS следующим образом:

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

У нас нет полноценных имен DNS, где я работаю, но это дает мне трехуровневое имя домена faux, а не только имя хоста.

Изменить 2011/03/17: Включены изменения, предложенные по знаку ниже.

Ответ 2

Я использовал этот очень похожий метод:

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

Ответ 3

Если вышеуказанное не работает, вы также можете попытаться извлечь его из среды:

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