Как получить простое имя компьютера (без имени домена) из полного имени компьютера в c #? - PullRequest
5 голосов
/ 24 февраля 2012

Могу ли я получить простое имя компьютера (без имени домена) из полностью определенного имени (может быть с именем домена или без него)?Возможно ли, чтобы имя компьютера имело точку (.) В нем?

(этот вопрос, кажется, делает наоборот)

Ответы [ 2 ]

6 голосов
/ 24 февраля 2012

Ни одно имя хоста не может содержать точку (ссылка Википедия и RFC 952 (см. "Допущения") и RFC 1123 ).Это разделитель между именем хоста и именем домена.Таким образом, вы можете просто сделать

string fullName = "foobar.domain";
string hostName = fullName.Substring(0, fullName.IndexOf('.'));

(при правильной проверке ошибок, конечно, для случая, когда «fullName» на самом деле не является полным именем).

5 голосов
/ 24 февраля 2012

из fqdn:

string s = "some.computer.name";
string host = s.Substring(0, s.IndexOf('.'));

Вне рамок:

System.Net.Dns.GetHostName();
...