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中文網其他相關文章!