轉載來自: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;
}
}