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