1
@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地址。如何獲得客戶端系統的IP地址,Serverlet要求
您是否從本地網絡訪問服務器?嘗試遠程訪問它(移動網絡上的電話或其他),看看是否改變了觀點。 – Randy
我也做了同樣的事情,但在這種情況下,我也越來越127.0.0.1 –
我想要網絡IP地址不主機地址 –