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;
}
本文介绍了一种将IP地址转换为长整型数值的算法实现。该算法通过解析IP地址的每个部分并使用Math.pow()函数将其转换为十进制形式,从而方便进行IP地址的比较和处理。
2440

被折叠的 条评论
为什么被折叠?



