Java獲得代理環境下的真實IP

c6g3 9年前發布 | 3K 次閱讀 Java

在有代理環境下要獲得真實ip,必須先看X-RealIP和X-Forwarded-For兩個http頭,如果這兩個請求頭中有值的話,真實ip就從這里取值,否則再看request.getRemoteAddr()。

如下是獲得真實IP的代碼:

   /**

 * 獲取真實IP:
 *    先取
 * @param request
 * @return
 */
public static String getClientIP(HttpServletRequest request) {
    String ip = request.getHeader("X-Real-IP");
    if (StringUtil.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) {
        ip = request.getHeader("X-Forwarded-For");
    }
    if (StringUtil.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) {
        ip = request.getRemoteAddr();
    }

    return ip;
}</pre> 


 本文由用戶 c6g3 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!