My solution to a similar problem was php.
It's logging the ip temporarily to mysql (or a plain text if needed) while downloading. Then removes it from the list either when downloading finished or canceled by user. You may also cap the bandwith with same script if needed.
|