java - Jsp页面获取客户端IP地址

标签 java jsp

我想在我的jsp页面中获取客户端的IP地址并希望存储在我的数据库中。

我在 Jsp 页面中使用以下代码来获取 Ip 地址,但它显示的是服务器 Ip 地址。

 <input type="hidden" name="ipaddress" value="<%=request.getRemoteAddr()%>"/> 

最佳答案

在通常情况下,方法ServletRequest.getRemoteAddr()(或getRemoteHost()getRemotePort())应该返回实际的详细信息客户。 但是,如果它通过代理或不同的 servlet 引擎路由,您将获得这些机器的 IP。为了解决这些情况,您可以尝试以下操作

request.getHeader("VIA")             --> Gateway   
request.getHeader("X-FORWARDED-FOR")--> IPaddress

但是如果请求直接来自客户端,则可能返回 null。您可以通过一些附加条件来处理这种情况以获得有效数据。

关于java - Jsp页面获取客户端IP地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12958759/

相关文章:

java - 在 Android 应用程序上跟踪用户 session

java - Iterating over a list of Javabeans 格式化输出

jsp - ORA-12518,TNS :listener could not hand off client connection

java - 如何修复 servlet url-pattern 中的重定向循环,如 "users/*"

java - 尝试转换子类时出现 ClassCastException

java - 在jsp中将整数存储为属性

java - 带注释 @PostConstruct (javax) 的方法不会调用

java - Spring MVC : Show data in a dialog after making an AJAX call

jquery - 为什么图像不附加到 div 中

java - 比较jsp中数组的值