ruby-on-rails - 从 Rails 中的主机/URL 获取基本域名

标签 ruby-on-rails ruby dns

我有一个托管在 Heroku 上的 Ruby on Rails 应用程序。作为应用程序的一部分,我需要获取已输入的主机名并确定基本域,以便我们可以执行自动 NS 查找以使用 Resolv 查找主机名的权威名称服务器。

给定以下输入应用的示例:

www.google.com
online.domain.com
www.somedomain.co.uk
sub.host.domain.com

如何只获取基本域:

google.com
domain.com
somedomain.co.uk
domain.com

棘手的部分是由于国际 URL,我们不能只获取域名的最后两部分。但我不知道有任何其他方法可以将主机名精简到我们可以找到它的 NS 记录的位置。对任何建议感到好奇。

最佳答案

我知道的两个选项:

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

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

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

关于ruby-on-rails - 从 Rails 中的主机/URL 获取基本域名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36658228/

相关文章:

grails - grails 中 1 个 Controller 的 2 个域类?

javascript - 通过javascript点击link_to

ruby-on-rails - 即使在成功安装后也会出现恼人的 libv8 错误

ruby-on-rails - rails gem : Running All Generators for given Namespace

ruby - 在Ruby中准备和执行SQLite语句

python - Ruby/Python 中是否有 OpenSource BASIC 解释器?

javascript - 获取子域名Javascript的域名

redirect - 301重定向与 parking

ruby-on-rails - RSolr RequestError Solr Response solr 配置中的严重错误

ruby-on-rails - 无方法错误 : undefined method `within' for main:Object