从Rails中的主机/ URL获取基本域名

时间:2016-04-15 23:08:43

标签: ruby-on-rails ruby dns

我在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记录的位置。对任何建议都很好奇。

1 个答案:

答案 0 :(得分:2)

我知道两个选项:

  1. 创建一个匹配所有可能的域扩展名的正则表达式,然后取消前面的主机名。您可以在此处找到所有可能的域扩展名的公开列表:https://publicsuffix.org/list/

  2. 使用domainatrix gem(https://github.com/pauldix/domainatrix),其中包含从上面列表中收集的所有域扩展名的注册表:

      
        

    url = Domainatrix.parse(“http://www.example.co.uk”)     => #     url.domain     => “例”     url.public_suffix     => “co.uk”