当前位置: 代码迷 >> Web前端 >> java、servlet、jsp获取真实IP地址(署理、F5、WebLogic、Apache)
  详细解决方案

java、servlet、jsp获取真实IP地址(署理、F5、WebLogic、Apache)

热度:220   发布时间:2012-10-20 14:12:47.0
java、servlet、jsp获取真实IP地址(代理、F5、WebLogic、Apache)
<%!
public static void guessRealIp(HttpServletRequest req, HttpServletResponse resp) {

    try {
	    resp.getWriter().write("X-Forwarded-For: " + req.getHeader("X-Forwarded-For") + "<br>");
	    resp.getWriter().write("Proxy-Client-IP: " + req.getHeader("Proxy-Client-IP") + "<br>");
	    resp.getWriter().write("WL-Proxy-Client-IP: " + req.getHeader("WL-Proxy-Client-IP") + "<br>");
	    resp.getWriter().write("getRemoteAddr: " + req.getRemoteAddr() + "<br>");
    } catch (Exception e) {
        e.printStackTrace(resp.getWriter());
    }
}

public static String getRealIp(HttpServletRequest req, HttpServletResponse resp) {

    String ip = req.getHeader("X-Forwarded-For");

    if (ip != null) {
        if (ip.indexOf(',') == -1) {
            return ip;
        }
        return ip.split(",")[0];
    }

    if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
        ip = req.getHeader("Proxy-Client-IP");
    }
    if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
        ip = req.getHeader("WL-Proxy-Client-IP");
    }
    if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
        ip = req.getRemoteAddr();
    }

    return ip;
}
%><% guessRealIp(request, response) %>
  相关解决方案