java - 为什么 getRemoteHost() 在部署应用程序时返回 IP 地址?

标签 java servlets websphere ibm-was

在我的开发环境中,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/

相关文章:

Java如何调用子类的方法

java - RemoteObject方法返回值

c# - 炼金术 WebSocketClient

java - 将值从 JSP scriptlet 传递到 servlet

spring - 在 Websphere 上使用 Aspectj

Docker IBM Websphere Base 9 for windows - 管理控制台不工作(Windows 10 上的 Docker)

java - 日期的 hibernate 条件

java - 在 google app engine 中出现此错误 405 此 URL 不支持 HTTP 方法 GET

java - 同时使用 @RequestBody 和普通参数

java - 如何通过分段文件上传接受表单参数