public long getIpRountingFactor(String ipAddress) { //ipAddress用户的ip地址
if (!StringUtils.hasText(ipAddress)) {
return 0l;
}
String[] ips = ipAddress.split("\\.");
if (ips.length != 4) {
return 0l;
}
int idx = 3;
long factor =0;
for (String s : ips) {
try {
int i = Integer.valueOf(s);
if (i > 255 || i < 0) {
return 0l;
}
// System.out.println("b="+b);
System.out.println("factor"+i+"="+factor+"idx="+idx);
// factor +=i* (256 ^ idx--);
factor += i*(Math.pow(256,idx--)); //把用户的IP地址转化成十进制的算法,Math.pow()是求方次的函数算法
// factor+=b;
System.out.println("factor"+i+"="+factor+"idx="+idx);
} catch (Exception ex) {
return 0l;
}
}
System.out.println("factor="+factor);
return factor;
}