code: func (i IPs) MarshalBinary() ([]byte, error) {
  	ips := make([]byte, 0, len(i)*net.IPv6len)
  	for _, ip := range i {
  		ips = append(ips, ip.To16()...)
  	}
  	return ips, nil
  }
docs: // MarshalBinary allocates a byte slice containing the consecutive data of all
  // IPs.