//方法接收一個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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.