我在Heroku上托管了一个Ruby on Rails应用程序。作为应用程序的一部分,我需要获取已输入的主机名并确定基本域,以便我们可以使用Resolv进行自动NS查找以查找主机名的权威名称服务器。
考虑到在应用程序中输入的以下示例:
www.google.com
online.domain.com
www.somedomain.co.uk
sub.host.domain.com
如何获得基本域:
google.com
domain.com
somedomain.co.uk
domain.com
棘手的部分是,由于国际网址,我们不能仅仅占用域名的最后两部分。但我不知道有任何其他方法可以将主机名剥离到我们可以找到它的NS记录的位置。对任何建议都很好奇。
答案 0 :(得分:2)
我知道两个选项:
创建一个匹配所有可能的域扩展名的正则表达式,然后取消前面的主机名。您可以在此处找到所有可能的域扩展名的公开列表:https://publicsuffix.org/list/。
使用domainatrix gem(https://github.com/pauldix/domainatrix),其中包含从上面列表中收集的所有域扩展名的注册表:
url = Domainatrix.parse(“http://www.example.co.uk”) => # url.domain => “例” url.public_suffix => “co.uk”