func NewNetworkNumber(ip net.IP) NetworkNumber {
	if ip == nil {
		return nil
	}
	coercedIP := ip.To4()
	parts := 1
	if coercedIP == nil {
		coercedIP = ip.To16()
		parts = 4
	}
	if coercedIP == nil {
		return nil
	}
	nn := make(NetworkNumber, parts)
	for i := 0; i < parts; i++ {
		idx := i * net.IPv4len
		nn[i] = binary.BigEndian.Uint32(coercedIP[idx : idx+net.IPv4len])
	}
	return nn
}
func NewNetworkNumber(ip net.IP) NetworkNumber {
	if ip == nil {
		return nil
	}
	coercedIP := ip.To4()
	parts := 1
	if coercedIP == nil {
		coercedIP = ip.To16()
		parts = 4
	}
	if coercedIP == nil {
		return nil
	}
	nn := make(NetworkNumber, parts)
	for i := 0; i < parts; i++ {
		idx := i * net.IPv4len
		nn[i] = binary.BigEndian.Uint32(coercedIP[idx : idx+net.IPv4len])
	}
	return nn
}
func NewNetworkNumber ( ip net . IP ) NetworkNumber { if ip == nil { return nil } coercedIP := ip . To4 ( ) parts := 1 if coercedIP == nil { coercedIP = ip . To16 ( ) parts = 4 } if coercedIP == nil { return nil } nn := make ( NetworkNumber , parts ) for i := 0 ; i < parts ; i ++ { idx := i * net . IPv4len nn [ i ] = binary . BigEndian . Uint32 ( coercedIP [ idx : idx + net . IPv4len ] ) } return nn }
// NewNetworkNumber returns a equivalent NetworkNumber to given IP address,
// return nil if ip is neither IPv4 nor IPv6.
NewNetworkNumber returns a equivalent NetworkNumber to given IP address return nil if ip is neither IPv4 nor IPv6 .