Пример: Я хочу что-то вроде abc.hyd.mycompany.com. Мое требование - разобрать это имя и инициализировать соответствующую службу.
using System.Net;
Dns.GetHostName() // doesn't return fully qualified name it just gives "abc"
Ответ 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"));