原理
a,b,c,d = a256256256+b256256+c256+123
ip是256进制,所以a需要*3个256才能保证每个bcd不重复,b,c,d同理,使用位计算效率更高:*256相当于<<8
提供一段scala代码:
def ip2long(ip:String)=ip.split(".").reverse.zipWithIndex.map(v=>v._1<<(8*v._2)).reduce(_+_)
可以提取转换后的数字的前三位进行分组查询,效率更高:
ip.groupby(_.substring(0,3))