package com.jepsoninfo.util; import java.util.Enumeration; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; public class NetUtils { public static String getClientIp() { printHttpHeader(((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest()); if (((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest() .getHeader("x-forwarded-for") == null) { return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest() .getRemoteAddr(); } return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest() .getHeader("x-forwarded-for"); } public static String getUserAgent() { return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest() .getHeader("user-agent"); } /** * 获取编码字符集 * * @param request * @param response * @return String */ public static String getCharEncoding(HttpServletRequest request, HttpServletResponse response) { if (null == request || null == response) { return "gbk"; } String enc = request.getCharacterEncoding(); if (null == enc || "".equals(enc)) { enc = response.getCharacterEncoding(); } if (null == enc || "".equals(enc)) { enc = "gbk"; } return enc; } public static void printHttpHeader(HttpServletRequest request) { Enumeration headerNames = request.getHeaderNames(); while(headerNames.hasMoreElements()) {//判断是否还有下一个元素 String nextElement = headerNames.nextElement();//获取headerNames集合中的请求头 String header2 = request.getHeader(nextElement);//通过请求头得到请求内容 } } }