在我的开发环境中,getRemoteHost() 成功返回客户端的 PC/机器名称。但是,一旦我将应用程序部署到生产环境中,getRemoteHost() 就会突然返回 IP 地址。
对于需要做什么才能使其始终返回 PC/机器名称有什么想法吗?它是一个在 WAS 7.0 上运行的 Java Web 应用程序。
最佳答案
来自 Java API
java.lang.String getRemoteHost()
返回发送请求的客户端或最后一个代理的完全限定名称。
如果引擎无法或选择不解析主机名(以提高性能),则此方法返回点分字符串形式的 IP 地址。
编辑:您可以尝试像这样解析主机名
InetAddress addr = InetAddress.getByName(ipString);
String host = addr.getHostName();
System.out.println(host);
其中 ipString
是从 getRemoteHost()
调用返回的 IP 的点分字符串形式。
关于java - 为什么 getRemoteHost() 在部署应用程序时返回 IP 地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28611110/