Golang:IP掩码的位数

Golang:IP掩码的位数,go,ip-address,Go,Ip Address,在Go中,如何获得IP掩码的位数,如下所示:10.100.20.0 255.255.255.0=>24bits maks 检查掩码是否小于或大于一定数量的位(如要阻止所有大于/24的地址)会很有帮助。该软件包具有获取掩码前缀大小的功能,该值在中使用。位的具体功能是: 要获取位,请参见以下示例: package main import ( "fmt" "net" ) func main() { mask := net.IPMask(net.ParseIP("255.2

在Go中,如何获得IP掩码的位数,如下所示:
10.100.20.0 255.255.255.0
=>
24
bits maks

检查掩码是否小于或大于一定数量的位(如要阻止所有大于/24的地址)会很有帮助。

该软件包具有获取掩码前缀大小的功能,该值在中使用。位的具体功能是:

要获取位,请参见以下示例:

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

太棒了!我知道有一种更简单的方法()@AdrianoP您的函数工作得很好:)。但是,当Size()不是标准形式时,它将返回0而不是-1(就像在函数中一样);1后跟0。