一、ip地址转换成数字
def iplog(ip:String):Long ={val s = ip.split("[.]").map(_.toLong)var ipnum = 0Lfor(i <- s){ipnum= i |ipnum << 8}ipnum}
二、二叉树方法
def binarySearch(ipnum: Long, ipRulers: Array[(String, String, String, String, String)]): Int = {//获取规则文件数据的索引var start =0var end = ipRulers.length-1while(start <= end){var middle =(start+end) /2val t = ipRulers(middle)val startIp = t._1.toLongval stopIp = t._2.toLongif(ipnum >= startIp && ipnum <= stopIp ){return middle} else if( ipnum < startIp){end = middle -1}else if( ipnum > startIp){start = middle +1}}-1}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!