首頁 >Java >Java基礎 >java如何取得ip位址

java如何取得ip位址

尚
原創
2019-12-27 14:27:117260瀏覽

java如何取得ip位址

java取得IP位址的方法:

/**
     * 通过HttpServletRequest返回IP地址
     *
     * @param request HttpServletRequest
     * @return ip String
     * @throws Exception
     */
    private static 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.getHeader("HTTP_CLIENT_IP");
        }
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("HTTP_X_FORWARDED_FOR");
        }
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getRemoteAddr();
            if (LOCAL_IP.equals(ip) || LOCAL_IP1.equals(ip)) {
                InetAddress inet = null;
                try {
                    inet = InetAddress.getLocalHost();
                    ip = inet.getHostAddress();
                } catch (UnknownHostException e) {
                    e.printStackTrace();
                }
            }
        }
        return ip;
    }

HttpServletRequest物件代表客戶端的請求,當客戶端透過HTTP協定存取伺服器時,HTTP請求頭中的所有資訊都封裝在這個物件中,透過這個物件提供的方法,可以獲得客戶端請求的所有資訊。

常用方法:

getRequestURL方法傳回客戶端發出請求時的完整URL。

getRequestURI方法傳回請求行中的資源名部分。

getQueryString 方法傳回請求行中的參數部分。

getPathInfo方法傳回請求URL中的額外路徑資訊。額外路徑資訊是請求URL中的位於Servlet的路徑之後和查詢參數之前的內容,它以「/」開頭。

getRemoteAddr方法傳回發出請求的客戶機的IP位址。

getRemoteHost方法傳回發出請求的客戶機的完整主機名稱。

getRemotePort方法傳回客戶機所使用的網路連接埠號碼。

getLocalAddr方法傳回WEB伺服器的IP位址。

getLocalName方法傳回WEB伺服器的主機名稱。

更多java知識請關注java基礎教學欄。

以上是java如何取得ip位址的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn