简体   繁体   中英

How to get a simple computer name (without the domain name) out of a full computer name in c#?

Can I get just a simple computer name (without the domain name) from a fully qualified name (can be with or without a domain name)? Is it possible for a computer name to have a dot (.) sign in it?

(this question seems to be doing the reverse)

No hostnames cannot contain a dot (reference Wikipedia and RFC 952 (see "ASSUMPTIONS") and RFC 1123 ). It is the delimiter between the hostname and the domainname. So you can simply do

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

(With proper error checking of course, for the case that "fullName" is not actually a fullname).

Out of a fqdn:

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

Out of the framework:

System.Net.Dns.GetHostName();

Split the retrieved hostname from GetHostName() into by Split function, and the 0th item of the result array:

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM