Not sure if EndPoint is the right abstraction to use here. In networking terminology an endpoint implies a specific device (or sometimes even a specific interface of a device), which might have a plenitude of addresses.

DNS#resolve is returning a list of distinct endpoints, which back a given DNS name... but the collection of them together is not a single endpoint, but rather a collection of IP endpoints, which correspond to a single DNS 'endpoint' that was passed in.

Maybe AddressList is a better name for this class?