一尘不染

在Jsp页面中获取客户端的IP地址

jsp

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

我正在Jsp页面中使用以下代码来查找IP地址,但它显示的是服务器IP地址。

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

阅读 605

收藏
2020-06-08

共1个答案

一尘不染

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

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

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

2020-06-08