加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Golang:IP掩码的位数

发布时间:2020-12-16 09:28:04 所属栏目:大数据 来源:网络整理
导读:在Go中,如何获取IP掩码的位数,如下所示:10.100.20.0 255.255.255.0 = 24位mak. 检查掩码是低于还是大于某个位数(如果想要阻止大于/ 24的所有地址)将会很有帮助. 解决方法 net 软件包具有获取掩码前缀大小的函数,即 CIDR notation中使用的值.这些位的具体功
在Go中,如何获取IP掩码的位数,如下所示:10.100.20.0 255.255.255.0 => 24位mak.

检查掩码是低于还是大于某个位数(如果想要阻止大于/ 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,0) // If you have the mask as 4 integer values

    prefixSize,_ := mask.Size()
    fmt.Println(prefixSize)
}

输出:

24

Playground

PS.

我假设你的意思是位掩码255.255.255.0

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读