|
@ -0,0 +1,56 @@
|
|
|
package com.yihu.jw.util.network;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
|
|
|
/**
|
|
|
* Utils - ip信息辅助工具类
|
|
|
* Created by progr1mmer on 2018/1/18.
|
|
|
*/
|
|
|
public class IPInfoUtils {
|
|
|
|
|
|
private static final long A1 = getIpNum("10.0.0.0");
|
|
|
private static final long A2 = getIpNum("10.255.255.255");
|
|
|
private static final long B1 = getIpNum("172.16.0.0");
|
|
|
private static final long B2 = getIpNum("172.31.255.255");
|
|
|
private static final long C1 = getIpNum("192.168.0.0");
|
|
|
private static final long C2 = getIpNum("192.168.255.255");
|
|
|
private static final long D1 = getIpNum("10.44.0.0");
|
|
|
private static final long D2 = getIpNum("10.69.0.255");
|
|
|
private static final long E1 = getIpNum("1.0.0.0");
|
|
|
private static final long E2 = getIpNum("1.255.255.255");
|
|
|
|
|
|
private static long getIpNum(String ipAddress) {
|
|
|
String [] ip = ipAddress.split("\\.");
|
|
|
long a = Integer.parseInt(ip[0]);
|
|
|
long b = Integer.parseInt(ip[1]);
|
|
|
long c = Integer.parseInt(ip[2]);
|
|
|
long d = Integer.parseInt(ip[3]);
|
|
|
return a * 256 * 256 * 256 + b * 256 * 256 + c * 256 + d;
|
|
|
}
|
|
|
|
|
|
public static boolean isInnerIP(String ip){
|
|
|
long n = getIpNum(ip);
|
|
|
return (n >= A1 && n <= A2) || (n >= B1 && n <= B2) || (n >= C1 && n <= C2) || (n >= D1 && n <= D2) || (n >= E1 && n<=E2);
|
|
|
}
|
|
|
|
|
|
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;
|
|
|
}
|
|
|
|
|
|
}
|