首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >子域名asp.net站点中带有.的伪子域名

子域名asp.net站点中带有.的伪子域名
EN

Stack Overflow用户
提问于 2009-09-05 16:46:08
回答 2查看 329关注 0票数 1

我有一个.net网站和几个域名与通配符域名指向它。我使用伪子域名系统,我用下面的代码从url中提取子域名。

代码语言:javascript
复制
    public static string GetSubdomain()
{
    string domain = HttpContext.Current.Request.Url.Host;
    if (domain.Substring(0, 4).ToLower() == "www.")  // if www exists in the url such as www.subdomain.acme.com
        domain = domain.Remove(0, 4);
    return domain;
}

代码有一些限制。我不能允许用户创建像subdomain.subdomain.domain.com这样的网站,但subdomain.domain.com。

由于我使用的tlds不同(如site.net,site.mobi,site.co.uk),我找不到一个可靠的方法来创建子域。在里面。

谁有我可以用的片段?

EN

回答 2

Stack Overflow用户

发布于 2009-09-05 17:33:45

您可以使用一个简单的正则表达式提取名称的所有部分

代码语言:javascript
复制
using System.Text.RegularExpressions;    
void MatchRegex()
{
        Regex regex = new Regex(@"(?<subdomain>([^\.]*[\.])*)(?<domain>[^\.]+)[\.](?<tld>[^\.]+)$");
        string input = @"sub1.sub2.ttt.com";

        Match   match = regex.Match(input);
       if( match != null )
       {

          string   subDomain = match.Groups["subdomain"].Value;
          string   domain = match.Groups["domain"].Value;
          string   tld = match.Groups["tld"].Value;
       }
}
票数 0
EN

Stack Overflow用户

发布于 2009-09-05 17:56:58

我很想简单一点,使用下面这样的东西:

代码语言:javascript
复制
        string fqdn = "test.mydomain.co.uk";
        string[] validDomains = new string[] { "mydomain.co.uk", "mydomain.com", "mydomain.mobi" };

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

        string[] stringSegments = fqdn.Split(matchChars, 2);
        if (validDomains.Contains(stringSegments[1]))
        {
            Console.WriteLine("Domain Valid");
        }
        else
        {
            Console.WriteLine("Domain Invalid");
        }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1383747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档