我发现自己需要一个java实用程序来获取一个完全限定的主机名,并从中生成domain name。
在简单的情况下,这意味着将host.company.com
转换为company.com
,但这会因host.subdomain.company.com
或host.company.co.uk
而变得更加复杂,其中含义{{1}} “域名”有点模糊。使用SLD和ccSLD的定义引发并发症,并且会变得混乱。
所以我的问题是,是否有一个第三方图书馆能够理解这些内容,并能给我合理的解释。
答案 0 :(得分:3)
我认为这样的事情不存在,因为它是一个管理而不是技术问题,而且是一个非常多边的问题。
如果你最终滚动自己,Mozilla维基上的this page看起来是一个很好的起点,有很多参考。看起来很头疼。只需看看rules for Japan。哎哟。
答案 1 :(得分:3)
Mozilla定期维护其在浏览器中用于cookie安全的规则,其格式可由其他人解析和使用:
搜索Google时,可能有Java库可以解析列表,但我不知道它们的质量。
答案 2 :(得分:1)
不确定是否出于同样的目的,我在代码中做了类似的事情。当我设置cookie时,我想将域设置为尽可能接近顶部,因此我需要找到比公共后缀低一级的域。例如,您可以为host.div.example.com
设置Cookie的最高域名是.example.com
。 host.div.example.co.jp
为.example.co.jp
。
不幸的是,代码不在公共领域。这很容易做到。我基本上使用了Apache HttpClient 4中的以下两个类,
org.apache.http.impl.cookie.PublicSuffixFilter
org.apache.http.impl.cookie.PublicSuffixListParser
我忘了确切的原因,但我们不得不做一些非常小的调整。您只需从上到下遍历域名,首先有效的cookie域就是您所需要的。
您需要从此处下载公共后缀列表并将其包含在您的JAR中,
http://mxr.mozilla.org/mozilla-central/source/netwerk/dns/src/effective_tld_names.dat?raw=1