I think it's not possible as domains don't have to be registered necessarily - a server can serve a domain at a particular IP so long as the requesting client uses a domain that the server responds to.
Obviously if it's registered domains then you can in theory just get the list from the registrar. They probably sell the full list for a price.
I imagine you can harvest a list with sufficient resources.