//方法接收一个String类型的IP如:192.168.100.100,返回一个数字如:3232261220
def ipToLong(ip: String): Long = {
//注意:IP个原始面貌:
//10111111.10111010.11110000.11110000
val ipArr: Array[Int] = ip.split("[.]").map(s => Integer.parseInt(s))
var ipnum = 0L
for (i <- ipArr) {
//<<表示位运算左移 ,0L左移之后还是0L,二进制形式:00000000.00000000.00000000.00000000
//其他数,左移之后,后面补0
//|表示位运算或,或的特点是,与0进行或,返回本身
//第一次:
//00000000.00000000.00000000.10111111
//00000000.00000000.00000000.00000000
//00000000.00000000.00000000.10111111
//第二次:
//00000000.00000000.00000000.10111010
//00000000.00000000.10111111.00000000
//00000000.00000000.10111111.10111010
//第三次:
//00000000.00000000.00000000.11110000
//00000000.10111111.10111010.00000000
//00000000.10111111.10111010.11110000
//第四次:
//00000000.00000000.00000000.11110000
//10111111.10111010.11110000.00000000
//10111111.10111010.11110000.11110000
ipnum = i | (ipnum << 8)
}
ipnum
}
Scala实现IP转Long
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.