JSP獲取網絡IP地址

import javax.servlet.http.HttpServletRequest;

public class RemoteAddress {

    public static String getRealClientIP(HttpServletRequest request) {
        String ip = request.getHeader("X-Forwarded-For");
        System.out.println(ip);
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("Proxy-Client-IP");
            System.out.println(ip);
        }
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("WL-Proxy-Client-IP");
            System.out.println(ip);
        }
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getRemoteAddr();
            System.out.println(ip);
        }

        return ip;
    }
}

之前用如上代碼測試都發現結果是127.0.0.1,用本機做服務器掛網上中轉也是。以爲是代碼出現問題,後來直接掛到空間上,發現正常顯示出外網了,於是用移動網訪問本機服務器也可以正常顯示IP了而不再是127.0.0.1或者::1 的IPv6的地址。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章