3
在Go中,如何獲得IP掩碼的位數如下:10.100.20.0 255.255.255.0
=>24
位。Golang:IP掩碼的位數
檢查一個掩碼是低於還是大於一定數量的比特(如果想阻止所有大於/ 24的地址)會很有幫助。
在Go中,如何獲得IP掩碼的位數如下:10.100.20.0 255.255.255.0
=>24
位。Golang:IP掩碼的位數
檢查一個掩碼是低於還是大於一定數量的比特(如果想阻止所有大於/ 24的地址)會很有幫助。
net
包具有獲取掩碼的前綴大小的功能,該值用於CIDR notation。對位的具體功能是:
func (m IPMask) Size() (ones, bits int)
爲了得到位,請看下面的例子:
package main
import (
"fmt"
"net"
)
func main() {
mask := net.IPMask(net.ParseIP("255.255.255.0").To4()) // If you have the mask as a string
//mask := net.IPv4Mask(255,255,255,0) // If you have the mask as 4 integer values
prefixSize, _ := mask.Size()
fmt.Println(prefixSize)
}
輸出:
Ps。
我想你指的是位掩碼255.255.255.0
太好了!我知道有一個更簡單的方法([我的嘗試])(http://play.golang.org/p/2hjumtMjS1)) –
@AdrianoP你的函數很好用:)。但是,如果Size不是-1,那麼size()會返回0而不是-1(就像在你的函數中一樣);其次是零。 – ANisus