java 獲取客戶端ip

轉載來自:https://www.cnblogs.com/ITtangtang/p/3927768.html

轉載來自:http://blog.csdn.net/testcs_dn/article/details/38585495

頁面得到ip 地址:http://blog.csdn.net/ye1992/article/details/9492809

package com.web.controller.io;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.web.controller.BaseAction;

@Controller
@RequestMapping("/io/Interview/")
public class IOInterviewVideoAction extends BaseAction {
	
	private Logger logger = Logger.getLogger(this.getClass());

	@ResponseBody
	@RequestMapping("getInterview")
	public String getInterview(HttpServletRequest request, HttpServletResponse response, ModelMap map) {
		try {
			//String number = request.getParameter("number");
			//Integer iRecords = NumberUtils.toInt(request.getParameter("records"), 3);

			String ipp = request.getHeader("X-Forwarded-For");
			String ips = request.getHeader("X-Real-IP");
			System.out.println(ipp+"a");System.out.println(ips+"b");System.out.println(request.getRemoteAddr()+"c");
			
			String ip = request.getHeader("X-Forwarded-For");
			if (StringUtils.isNotEmpty(ip) && !"unKnown".equalsIgnoreCase(ip)) 
			{
				// 多次反向代理後會有多個ip值,第一個ip纔是真實ip
				int index = ip.indexOf(",");
				if (index != -1) 
				{
					return ip.substring(0, index);
				} 
				else 
				{
					return ip;
				}
			}
			ip = request.getHeader("X-Real-IP");
			if (StringUtils.isNotEmpty(ip) && !"unKnown".equalsIgnoreCase(ip)) 
			{
				return ip;
			}
		} catch (Exception e) {
			e.printStackTrace();
			logger.error("IOWeixinAction@_redirect error", e);
			sendFailureMessage(map, "系統內部錯誤.");
		}
		return request.getRemoteAddr();
	}
	
	
	/** 
	 * 獲取訪問用戶的客戶端IP(適用於公網與局域網). 
	 */  
	@ResponseBody
	@RequestMapping("getIpAddrs")
	public String getIpAddrs(HttpServletRequest request) throws Exception {  
	    if (request == null) {  
	        throw (new Exception("getIpAddr method HttpServletRequest Object is null"));  
	    }  
	    String ipString = request.getHeader("x-forwarded-for");  
	    String ipStrings = request.getHeader("Proxy-Client-IP");  
	    String ipStringd = request.getHeader("WL-Proxy-Client-IP");  
	    System.out.println(ipString); System.out.println(ipStrings);System.out.println(ipStringd);
	    if (StringUtils.isBlank(ipString) || "unknown".equalsIgnoreCase(ipString)) {  
	        ipString = request.getHeader("Proxy-Client-IP");  
	    }  
	    if (StringUtils.isBlank(ipString) || "unknown".equalsIgnoreCase(ipString)) {  
	        ipString = request.getHeader("WL-Proxy-Client-IP");  
	    }  
	    if (StringUtils.isBlank(ipString) || "unknown".equalsIgnoreCase(ipString)) {  
	        ipString = request.getRemoteAddr();  
	    }  
	    // 多個路由時,取第一個非unknown的ip  
	    final String[] arr = ipString.split(",");  
	    for (final String str : arr) {  
	        if (!"unknown".equalsIgnoreCase(str)) {  
	            ipString = str;  
	            break;  
	        }  
	    }  
	    return ipString;  
	}  
}


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