HttpServletRequestUtils.java 1.49 KB
package com.yoho.search.utils;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

public class HttpServletRequestUtils {
	
	@SuppressWarnings("unchecked")
	public static Map<String, String> transParamType(HttpServletRequest request) {
		Map<String, Object> paramMap = request.getParameterMap();
		Map<String, String> resultMap = new HashMap<String, String>();
		Iterator<String> itKeys = paramMap.keySet().iterator();
		while (itKeys.hasNext()) {
			String key = itKeys.next();
			String val = ((String[]) paramMap.get(key))[0];
			resultMap.put(key, val);
		}
		resultMap.put("ip", getIpAddress(request));
		return resultMap;
	}
	
	public static String getIpAddress(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(); 
	    } 
	    return ip; 
	}
	
}