使用JavaScript获取不带子域名的域名?

42

1
所谓根主机名,是指注册的域名。它是指去除所有子域名后的根主机名,就像我在问题中描述的那样。例如,one.two.roothost.co.uk => roothost.co.uk。 - pmcilreavy
我认为我已经尽可能清楚地表达了问题。不要担心Bob将网站托管在哪里,无论它托管在哪里,我需要一种确定的方法来查找给定URL的A记录主机名。 - pmcilreavy
1
请看这个问题和答案。https://dev59.com/MXRB5IYBdhLWcg3wCjrO - SergeyAn
我添加了悬赏,因为我想知道主机名而不包括子域名,你链接的问题并没有帮助到我。 - Alexis Tyler
1
到目前为止,我所看到的唯一“正确”的答案是@MaximillianLaumeister发布的那个,但我还需要等待21个小时才能接受赏金,所以我会等待并看看是否有其他人提出了任何东西。就我个人而言,我正在寻找一种获取没有子域的任何域的方法,您的答案似乎只适用于某些类型的域,并且不使用经过验证的库或方法来获取结果,而他的答案则不同。 - Alexis Tyler
显示剩余6条评论
13个回答

-3

关于这个问题...

    function getDomain(){
        if(document.domain.length){
            var parts = document.domain.replace(/^(www\.)/,"").split('.');

            //is there a subdomain? 
            while(parts.length > 2){
                //removing it from our array 
                var subdomain = parts.shift();
            }

            //getting the remaining 2 elements
            var domain = parts.join('.');

            return domain.replace(/(^\.*)|(\.*$)/g, "");
        }
        return '';
    }

2
这完全取决于你认为什么是域名或子域名。在这种情况下,此脚本将google视为子域名,将co.in视为域名 :)尽管如此,考虑到域名应该能够存在而不需要子域名,co.uk不是一个域名。所以,在这种情况下,是的,这个脚本将无法处理这些情况。 - Alvaro

-4

我的解决方案对我有效:从“shop.gocustom.com”获取“gocustom.com”

var site_domain_name = 'shop.gocustom.com';
alert(site_domain_name);
var strsArray = site_domain_name.split('.');
var strsArrayLen = strsArray.length;
alert(strsArray[eval(strsArrayLen - 2)]+'.'+strsArray[eval(strsArrayLen - 1)])

-17
你可以在JavaScript中尝试这个:
alert(window.location.hostname);

它将返回主机名。


4
OP希望获取根域名,您的方法会返回所有子域名。 - Dinesh Chitlangia
1
是的,但是从主机名中,您可以拆分或获取根名称。您可以使用点(.)拆分它,以便返回一个数组。 - Nikhil.nj
1
是的,但你不知道哪些部分是子域名,哪些部分是根域名,所以这没有用处。 - Ivan Castellanos

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接