如何使用c#检查当前URL是否具有子域名?

时间:2009-11-20 06:33:59

标签: c# asp.net-mvc subdomain

我需要检查当前URL是否具有子域名,如果它有子域名,我想从URL中提取它。

任何人都可以在ASP.NET MVC应用程序中知道如何在C#中执行此操作。

感谢。

3 个答案:

答案 0 :(得分:3)

这是你要找的吗?

Uri fullPath = new Uri("http://subdomain.domain.topleveldomain/index.html");

string hostname = fullPath.Host; // returns "subdomain.domain.topleveldomain"

char[] separators = new char[]{'.'};

// returns {"subdomain","domain","topleveldomain"}
string[] domains = hostname.Split(separators); 

string subdomain = domains[0];
string domain = domains[1];
string tld = domains[2];

String.Split documentation

请注意,如果可能存在多个子域,则需要稍微更改一下,即。 http://subsub.sub.dom.tld/或类似的东西。

答案 1 :(得分:2)

你不能这样做,考虑这些例子,一个是域,另一个是子域

  

domain.co.uk

     

subdomain.hp.hr

co.uk是英国TLD

和hp.hr可能是在克罗地亚注册的Hewlett-Packard网站

答案 2 :(得分:0)

子域名到底是什么意思?

你可以这样做:

Uri u = new Uri("http://sub.mydomain.com/path/file.htm");
if(i.Host == "sub.mydomain.com")
{ ... }

这就是你想要的吗?