Open kootenpv opened 8 years ago
Hey @kootenpv!
I run Windows :P but I already have aria2 installed. I used to use aria2 before Flash.
The problem with aria2 is, default max connections to a server is 16. If you need more than that, you have to change it in the source and compile it yourself -- the process wasn't straightforward, at least at the time I was not able to do it.
I normally use 40-50 IP addresses so 16 was not enough for me, so I wrote my own downloader "Flash" I max out on my network ethernet speed with Flash -- so it can't get any faster than that. As downloaders are almost always network bound, Python is not a problem either.
PS. Flash uses multiple threads too. As of now, it uses 8*NUMBER_OF_IP_ADDRESSES
threads.
At a given time only NUMBER_OF_IP_ADDRESSES
threads are actually downloading data but 8*NUMBER_OF_IP_ADDRESSES
threads are created at the beginning itself.
Cool, very nice backstory! I just read up on IP, it's a clever addition over aria2c (even though in my case multiple threads were fine compared to requiring multiple IPs). If I were you I would add some kind of "official" benchmark to your readme, that'll help convince people it is very serious :)
EDIT: And indeed, I missed that it is on Windows. It would probably be nice to make it work on all OSes. How are you creating multiple IPs?
How are you creating multiple IPs?
@kootenpv, I don't understand the question.
On my college network, downloaded speed is limited per IP address but many IP addresses are unused. So, you can just add multiple IP addresses to your network adapter and then download parallelly from all of them.
Say, the speed limit is 3 Mbps per IP addresses, and I use 30 - 40 IP addresses, I max out at ~100 Mbps.
If you are asking me how I add multiple IP addresses to network adapter, I wrote a thin Python wrapper around (Windows) netsh
command.
Hey, I'm wondering if you're sure you need different IP addresses... could you test out your tool and see if you can get a faster download speed in comparison to this tool (uses multiple threads):
You can then run the following command to use 16 threads: