2016-03-22 4 views
-1

Gibt es eine eingebaute Funktion zur Berechnung der Broadcast-Adresse einer net.IPNet Struktur?Wie bekomme ich Broadcast-Adresse von (IPv4) net.IPNet?

+1

Vielleicht ** ['this '] (https://groups.google.com/forum/#!topic/golang-nuts/IrfXFTUavXE) ** Link kann Ihnen helfen? – amanuel2

+0

Ich hatte den Anfang dieses Threads betrachtet, aber ich hatte es nicht bis zum Ende durchgemacht, wo die Waren sind. Vielen Dank! – pnovotnak

Antwort

0

Der Link @Dsafds hat die Antwort. Hier, um der Geschichte willen, und Sie müssen den Thread nicht selbst durchlesen. Code ist Mikio Hara mit kleinen Änderungen von mir gemacht.

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 
} 
Verwandte Themen