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

Networking 如何获取(IPv4)net.IPNet的广播地址?,networking,go,Networking,Go,是否有一个内置函数来计算net.IPNetstruct的广播地址?链接@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("do

是否有一个内置函数来计算
net.IPNet
struct的广播地址?

链接@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
}

链接@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
}

也许林克能帮你吗?我看了那条线的开头,但还没有看完货物所在的地方。谢谢也许林克能帮你吗?我看了那条线的开头,但还没有看完货物所在的地方。谢谢