介紹幾個 ?怎么樣獲取真實的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
提交
取消
