介紹幾個 ?怎么樣獲取真實的IP ?過濾掉代理的IP
2 回答
已采納

翔仔
TA貢獻35條經驗 獲得超44個贊
//同學試試這個 ????public?String?getIpAddr(HttpServletRequest?request){?? ????????String?ipAddress?=?request.getHeader("x-forwarded-for");?? ????????????if(ipAddress?==?null?||?ipAddress.length()?==?0?||?"unknown".equalsIgnoreCase(ipAddress))?{?? ????????????????ipAddress?=?request.getHeader("Proxy-Client-IP");?? ????????????}?? ????????????if(ipAddress?==?null?||?ipAddress.length()?==?0?||?"unknown".equalsIgnoreCase(ipAddress))?{?? ????????????????ipAddress?=?request.getHeader("WL-Proxy-Client-IP");?? ????????????}?? ????????????if(ipAddress?==?null?||?ipAddress.length()?==?0?||?"unknown".equalsIgnoreCase(ipAddress))?{?? ????????????????ipAddress?=?request.getRemoteAddr();?? ????????????????if(ipAddress.equals("127.0.0.1")?||?ipAddress.equals("0:0:0:0:0:0:0:1")){?? ????????????????????//根據網卡取本機配置的IP?? ????????????????????InetAddress?inet=null;?? ????????????????????try?{?? ????????????????????????inet?=?InetAddress.getLocalHost();?? ????????????????????}?catch?(UnknownHostException?e)?{?? ????????????????????????e.printStackTrace();?? ????????????????????}?? ????????????????????ipAddress=?inet.getHostAddress();?? ????????????????}?? ????????????}?? ????????????//對于通過多個代理的情況,第一個IP為客戶端真實IP,多個IP按照','分割?? ????????????if(ipAddress!=null?&&?ipAddress.length()>15){?//"***.***.***.***".length()?=?15?? ????????????????if(ipAddress.indexOf(",")>0){?? ????????????????????ipAddress?=?ipAddress.substring(0,ipAddress.indexOf(","));?? ????????????????}?? ????????????}?? ????????????return?ipAddress;??? ????}
添加回答
舉報
0/150
提交
取消