为了账号安全,请及时绑定邮箱和手机立即绑定

如何获取 (IPv4) net.IPNet 的广播地址?

如何获取 (IPv4) net.IPNet 的广播地址?

Go
子衿沉夜 2021-12-27 15:38:58
是否有内置函数来计算结构的广播地址net.IPNet?
查看完整描述

1 回答

?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

链接@Dsafds 有答案。这里是为了历史,所以你不必自己通读线程。代码是 Mikio Hara 的,我做了一些小的修改。


func lastAddr(n *net.IPNet) (net.IP, error) { // works when the n is a prefix, otherwise...

    if n.IP.To4() == nil {

        return net.IP{}, errors.New("does not support IPv6 addresses.")

    }

    ip := make(net.IP, len(n.IP.To4()))

    binary.BigEndian.PutUint32(ip, binary.BigEndian.Uint32(n.IP.To4())|^binary.BigEndian.Uint32(net.IP(n.Mask).To4()))

    return ip, nil

}


查看完整回答
反对 回复 2021-12-27
  • 1 回答
  • 0 关注
  • 116 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信