【问题标题】:Canonical Hostname规范主机名
【发布时间】:2011-01-18 15:35:46
【问题描述】:

谁能告诉我规范主机名的正确概念以及如何检查 Windows 上的规范主机名是什么?

实际上,我遇到了一个问题:我有一个 Java 代码,可以将输入的“服务器名称”转换为其规范的主机名:

try {
    InetAddress in = InetAddress.getByName(REQUESTSERVER);
    REQUESTSERVER = in.getCanonicalHostName();
    System.out.println("Canonical REQUESTSERVER "+ REQUESTSERVER );
} catch(Exception e) {
    System.out.println("lookup failed");
}

变量 REQUESTSERVER 能否在网络中具有不同的值?

【问题讨论】:

  • @momojeet - 不确定我是否关注。 REQUESTSERVER 在重新分配值之前的值是多少?
  • @jmort :- 它是像 pns15a.crpny.ksrt.com 这样的服务器的名称......类似的东西......

标签: java networking


【解决方案1】:

查看列出的示例 here 以获取 Google 的 CanonicalHostName()。 它为 www.google.com 获得的输出之一是

Which Host:www.google.com
Canonical Host Name:po-in-f104.google.com
Host Name:www.google.com
Host Address:72.14.253.104

当我在本地机器上运行相同的程序时,我得到的输出为

Which Host:www.google.com
Canonical Host Name:74.125.227.49
Host Name:www.google.com
Host Address:74.125.227.49

因此,根据不同的 DNS 配置,变量 REQUESTSERVER 将在整个网络中具有不同的值

【讨论】:

  • 好的,谢谢....你能告诉我如何在 windows 和 linux 机器上获取该名称...
  • 不同的值:- 如果没有这段代码,我怎么能得到它..我需要 linux 和 windows!
  • 据我所知,如果两台机器在同一个网络上使用同一个 DNS 服务器,那么它们的规范名称将是相同的。
【解决方案2】:

是的,当然在虚拟主机的(常见)情况下,单个物理主机提供不同的虚拟网站。在这种情况下,客户端用来访问服务器的主机名可以从 Java Servlet 方法ServletRequest.getServerName() 中获得。

看到这个SO question

【讨论】:

    猜你喜欢
    • 2012-09-22
    • 2019-04-30
    • 1970-01-01
    • 2023-03-27
    • 2012-08-09
    • 1970-01-01
    • 1970-01-01
    • 2023-01-11
    • 2014-08-19
    相关资源
    最近更新 更多