java獲取ip地址
來源:易賢網(wǎng) 閱讀:977 次 日期:2015-04-10 14:38:23
溫馨提示:易賢網(wǎng)小編為您整理了“java獲取ip地址”,方便廣大網(wǎng)友查閱!

有很多應用需要取得來訪者的IP地址,比如防止未授權(quán)用戶或惡意用戶的訪問等。J2EE的SERVLET標準接口javax.servlet.http.HttpServletRequest提供了getRemoteAddr()方法,用來取得來訪者的IP地址。

request.getRemoteAddr()這種方法在大部分情況下獲得的IP都是有效的。但是在客戶通過向代理軟件就不能獲取到客戶端的真實IP地址了。經(jīng)過代理以后,由于在客戶端和服務之間增加了中間層,因此服務器無法直接拿到客戶端的IP,服務器端應用也無法直接通過轉(zhuǎn)發(fā)請求的地址返回給客戶端。但是在轉(zhuǎn)發(fā)請求的HTTP頭信息中,增加了X-FORWARDED-FOR信息用以跟蹤原有的客戶端IP地址和原來客戶端請求的服務器地址。所以想要獲得客戶端的真正IP就要先判斷一下request.getHeader();

java獲取ip地址代碼:

public 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.getRemoteAddr();

}

return ip;

}

更多信息請查看IT技術(shù)專欄

更多信息請查看網(wǎng)絡編程
易賢網(wǎng)手機網(wǎng)站地址:java獲取ip地址
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點

版權(quán)所有:易賢網(wǎng)