从URL获取二级域名

时间:2015-04-08 23:12:18

标签: c# .net vb.net

如何从给定的网址获取二级域名?

到目前为止我读过的所有文章都假设该域至少有一个点。我需要一种方法来获取特定网址的顶级域名。

示例:

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的链接问题没有解决我提出这个问题的主要问题 - 它只考虑其中至少有一个点的域名。)

1 个答案:

答案 0 :(得分:-1)

使用:

var uri = new Uri("http://sub.domain.com:8080");
var trimmedUri 
  = Regex.Match(uri.Host, @"\w+(\.(com|org|edu))?$", RegexOptions.IgnoreCase).Value;