在 Java 中获取用户的 IP

Getting the user's IP in Java

如何使用 apache 获取连接到位于我服务器上的站点的用户的 IP 地址? 我只得到我服务器的IP地址。

protected void  getUserIp (){
    try {
        InetAddress ia = InetAddress.getLocalHost();
        String ipAddr = ia.getHostAddress();
        String hostName = ia.getHostName();
        log.debug("Local IP: " + ipAddr + "and" + "HOST: " + hostName);
    } catch (UnknownHostException e) {
        e.printStackTrace();
    }
}

你可以试试:

UI.getCurrent().getSession().getBrowser().getAddress()

此代码 运行 是否在 Spring 控制器中?

您可以向控制器方法添加一个 HttpServletRequest request 参数,Spring 将为您注入,然后您可以 request.getRemoteAddr()

HttpServletRequest 对象来自 Apache Tomcat