获取Spring MVC中客户端计算机的IP地址

时间:2017-05-16 08:04:33

标签: java spring-mvc servlets httprequest

我有一个java spring MVC网络应用程序,我正在尝试获取正在访问该应用程序的客户端计算机的IP地址。我已经尝试了下面显示的代码,

InetAddress addr = InetAddress.getLocalHost();
String ipAddr = addr.getHostAddress();

但这会返回localhost的IP地址。 我也尝试过在网上找到的其他建议,如下所示:

String remoteAddr = "";
if (request != null) {
  remoteAddr = request.getHeader("X-FORWARDED-FOR");
  if (remoteAddr == null || "".equals(remoteAddr)) {
      remoteAddr = request.getRemoteAddr();
  }
}

这也没有提供正确的IP地址。我也试过以下,没有任何对我有用: https://www.mkyong.com/java/how-to-get-client-ip-address-in-java/

what is the right way to get request's ip

没有什么能给我正确的IP地址。是否有任何解决方案可以尝试获取正在访问我的应用程序的计算机的正确IP地址。

1 个答案:

答案 0 :(得分:0)

您必须阅读来自请求的请求,请尝试此操作

public void readIp(HttpServletRequest request,HttpServletResponse response){
    String ip = request.getRemoteAddr();
    System.out.println("ip: "+ip);
}