閱讀142 返回首頁    go 阿裏雲 go 技術社區[雲棲]


J2EE中獲取IP地址

在JSP裏,獲取客戶端的IP地址的方法是request.getRemoteAddr(),這種方法在大部分情況下都是有效的。但是在通過了 Apache,Squid等反向代理軟件就不能獲取到客戶端的真實IP地址了。如果使用了反向代理軟件,用 request.getRemoteAddr()方法獲取的IP地址是:127.0.0.1或 192.168.1.110,而並不是客戶端的真實IP。


protected String getIpAddr() {  
    HttpServletRequest request = ServletActionContext.getRequest();  
    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;  

原帖地址:https://blog.csdn.net/smcwwh/article/details/6255324

最後更新:2017-04-03 20:19:17

  上一篇:go android讀取sd卡圖片並進行縮放操作
  下一篇:go Sql Server 存儲過程實例講解