【发布时间】:2016-12-29 11:07:43
【问题描述】:
@GET
@Produces(MediaType.APPLICATION_JSON)
public Response login(@Context HttpHeaders headers, @Context HttpServletRequest request) {
System.out.println(getClientIpAddress(request));
String ipAddress = request.getHeader("X-FORWARDED-FOR");
if (ipAddress == null) {
ipAddress = request.getRemoteAddr();
}
System.out.println("ip:" + ipAddress);
return new LoginUtils().performLogin(headers.getRequestHeaders());
}
public static String getClientIpAddress(HttpServletRequest request) {
for (String header : HEADERS_TO_TRY) {
String ip = request.getHeader(header);
if (ip != null && ip.length() != 0 && !"unknown".equalsIgnoreCase(ip)) {
return ip;
}
}
return request.getRemoteAddr();
}
但是我没有得到 IP 地址我得到相同的 127.0.0.1 这个值来自每个请求不同的系统可以请告诉我如何获取 IP 地址。
【问题讨论】:
-
您是从本地网络访问服务器吗?尝试远程访问它(移动网络上的电话或其他东西),看看是否会改变观点。
-
我做了同样的事情,但在这种情况下,我也得到了 127.0.0.1
-
我想获取网络 IP 地址而不是主机地址