如何从给定的网址获取二级域名?
到目前为止我读过的所有文章都假设该域至少有一个点。我需要一种方法来获取特定网址的顶级域名。
示例:
http://www.example.com -> example.com
http://sub.example.com -> example.com
http://example.com -> example.com
http://example:1000 -> example
http://localhost:1000 -> localhost
这里的代码是我尝试过的,并不适用于所有上述场景:
var uri = new Uri("http://www.example.com");
var host = uri.Host;
var p = host.LastIndexOf(".");
var domain = host.Substring(p + 1);
(Joe的链接问题没有解决我提出这个问题的主要问题 - 它只考虑其中至少有一个点的域名。)
答案 0 :(得分:-1)
使用:
var uri = new Uri("http://sub.domain.com:8080");
var trimmedUri
= Regex.Match(uri.Host, @"\w+(\.(com|org|edu))?$", RegexOptions.IgnoreCase).Value;