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