【问题标题】:How to get a simple computer name (without the domain name) out of a full computer name in c#?如何从 C# 中的完整计算机名称中获取简单的计算机名称(没有域名)?
【发布时间】:2012-03-14 20:36:07
【问题描述】:

我能否从完全限定名称(可以带或不带域名)中仅获得一个简单的计算机名称(不带域名)?计算机名称中是否可以包含点 (.) 符号?

(this question seems to be doing the reverse)

【问题讨论】:

    标签: c# dns hostname fqdn


    【解决方案1】:

    没有主机名不能包含点(参考WikipediaRFC 952(参见“假设”)和RFC 1123)。它是主机名和域名之间的分隔符。所以你可以简单地做

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

    (当然,通过适当的错误检查,对于“fullName”实际上不是全名的情况)。

    【讨论】:

    • 你有没有任何主机名不能包含点的权威来源?
    【解决方案2】:

    一个 fqdn:

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

    框架外:

    System.Net.Dns.GetHostName();
    

    【讨论】:

      最近更新 更多