方法一:
纯前台,不涉及后台操作。
直接在jsp页面中需要显示IP的地方使用
<%=request.getRemoteAddr() %>
即可显示当前IP。
通过代理访问的方式没法获得IP。
方法二:
结合后台,使用参数方式在前台显示IP。
在后台的doGet()或者doPost()代码中,使用一下方式:
//后台代码
doGet(HttpServletRequest request){
String user_ip = request.getRemoteAddr();
request.setAttribute("userIP", user_ip);
}
前台,在需要显示IP的地方使用 ${userIP},即可。
方法三:
网传很靠谱的办法,但是网上的代码都有错。
<%!public String getIpAddr(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
return ip;
}%>
然后在需要显示IP的地方使用 <%= getIpAddr(request)%> 即可。(网上的代码多了个;,出不来效果)。