java的域名解释实用程序

时间:2009-09-04 15:30:30

标签: java network-programming dns

我发现自己需要一个java实用程序来获取一个完全限定的主机名,并从中生成domain name

在简单的情况下,这意味着将host.company.com转换为company.com,但这会因host.subdomain.company.comhost.company.co.uk而变得更加复杂,其中含义{{1}} “域名”有点模糊。使用SLDccSLD的定义引发并发症,并且会变得混乱。

所以我的问题是,是否有一个第三方图书馆能够理解这些内容,并能给我合理的解释。

3 个答案:

答案 0 :(得分:3)

我认为这样的事情不存在,因为它是一个管理而不是技术问题,而且是一个非常多边的问题。

如果你最终滚动自己,Mozilla维基上的this page看起来是一个很好的起点,有很多参考。看起来很头疼。只需看看rules for Japan。哎哟。

答案 1 :(得分:3)

Mozilla定期维护其在浏览器中用于cookie安全的规则,其格式可由其他人解析和使用:

http://publicsuffix.org/

搜索Google时,可能有Java库可以解析列表,但我不知道它们的质量。

答案 2 :(得分:1)

不确定是否出于同样的目的,我在代码中做了类似的事情。当我设置cookie时,我想将域设置为尽可能接近顶部,因此我需要找到比公共后缀低一级的域。例如,您可以为host.div.example.com设置Cookie的最高域名是.example.comhost.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