有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我想在jsp页面中获取客户机的Ip地址,并将其存储在数据库中

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

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

共 (2) 个答案

  1. # 1 楼答案

    尝试使用request对象从服务器端获取客户端IP地址从来都不是一种可靠的方法

    最可靠的程序往往在客户端执行,比如ActiveX、小程序或Javascript。然而,这也带来了一些挑战。检查this question的答案,这样你就知道你面对的是什么(This is my prefered answer from that

  2. # 2 楼答案

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

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

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