如何在c#中从完整的计算机名称中获得一个简单的计算机名称(没有域名)

本文关键字:计算机名 一个 简单 域名 | 更新日期: 2023-09-27 18:25:45

我可以从一个完全限定的名称(可以有域名也可以没有域名)中只获取一个简单的计算机名称(没有域名)吗?一个计算机名可能有一个点(.)符号吗?

(这个问题似乎正好相反)

如何在c#中从完整的计算机名称中获得一个简单的计算机名称(没有域名)

没有主机名不能包含句点(参考维基百科和RFC 952(参见"假设")以及RFC 1123)。它是主机名和域名之间的分隔符。所以你可以简单地做

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

(当然,对于"fullName"实际上不是全名的情况,要进行适当的错误检查)。

离开fqdn:

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

框架外:

System.Net.Dns.GetHostName();

通过Split函数将从GetHostName()中检索到的主机名拆分为,结果数组的第0项:

string s = "some.computer.name";
string host = s.Split('.')[0];