I guess something should be noted on the botnet and DDoS.
The main interest of the distributed system of the botnet, is that you cannot identify a bot from a genuine client.
Think of it like this:
Scenario
Someone infects many computers by sending a virus. Each tricked user is now part of the so-called botnet. Let's say you have 100M bots.
Consequences
IP address usage
This scenario implies that the IP addresses of the bots have dynamic or static IP addresses depending of their ISP policy. So collecting IP addresses is worthless. Soon or later, the pool is going to be renewed.
Distributed network and identification
DDoS works this way: you will ask each bot to connect to one server.
Question: How do you know if they are trying to access your server for a legit purpose or just to saturate your connection pool?
Given this, as you can't identify whether a client is part of the attack or not, you cannot compile a reliable list of IP of the distributed network.
Conclusion
Although is it not impossible, I think that the prevention of DDoS attacks by IP is not possible because of the two exposed challenges: use of a real identifier (IP address) and identification of bots.
Maybe if a group of servers would report attacks on live to a master server, it is more than probable that the next attack from that set of bots will have different IP addresses. Furthermore, you cannot deny access to your site if an IP appeared once in the list of one address that tried to access one server know to have suffer a DDoS attack, because you will ban legitimate clients that do have nothing to do with the attack.
By the way, I never heard of such a list.
TOR network exit node are more easily identifiable. Some resource like http://proxy.org/tor.shtml