code: func (i *IPs) UnmarshalBinary(p []byte) error {
  	b := uio.NewBigEndianBuffer(p)
  
  	*i = make([]net.IP, 0, b.Len()/net.IPv4len)
  	for b.Has(net.IPv4len) {
  		*i = append(*i, net.IP(b.CopyN(net.IPv4len)))
  	}
  	return b.FinError()
  }
docs: // UnmarshalBinary reads a list of IPs from binary.