Ale*_*sov 24 javascript subdomain dns jquery
我如何 使用javascript example.com从可能的子域名集中获取域名sub1.example.com sub2.example.com sub3.example.com?
Ber*_*rgi 73
var parts = location.hostname.split('.');
var subdomain = parts.shift();
var upperleveldomain = parts.join('.');
Run Code Online (Sandbox Code Playgroud)
要获得只有二级域名,您可以使用
var sndleveldomain = parts.slice(-2).join('.');
Run Code Online (Sandbox Code Playgroud)
这更快
const firstDotIndex = subDomain.indexOf('.');
const domain = subDomain.substring(firstDotIndex + 1);
Run Code Online (Sandbox Code Playgroud)
接受的答案将有助于获得二级域。但是,您可能需要考虑一些称为“公共后缀”的内容。否则,您可能会得到意外和错误的结果。
例如,以域www.amazon.co.uk. 如果您只是尝试获取二级域,您最终会得到co.uk,这可能不是您想要的。这是因为co.uk是“公共后缀”,这意味着它本质上是一个顶级域。这是公共后缀的定义,取自https://publicsuffix.org:
“公共后缀”是互联网用户可以(或历史上可以)直接注册名称的后缀。
如果这是您的应用程序的关键部分,我会研究类似psl(https://github.com/lupomontero/psl)的内容进行域解析。它适用于 nodejs 和浏览器,并在 Mozilla 维护的公共后缀列表上进行了测试。
这是他们自述文件中的一个快速示例:
var psl = require('psl');
// TLD with some 2-level rules.
psl.get('uk.com'); // null);
psl.get('example.uk.com'); // 'example.uk.com');
psl.get('b.example.uk.com'); // 'example.uk.com');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28386 次 |
| 最近记录: |