规范主机名

时间:2011-01-18 07:11:57

标签: java networking

任何人都可以告诉我一个规范主机名的正确概念,我如何检查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可以在网络中具有不同的值吗?

2 个答案:

答案 0 :(得分: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将在网络中具有不同的值

答案 1 :(得分:0)

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

请参阅此SO question