I think ntop can actually provide such functionality
Still... http://www.ntop.org/ ... I use it ;-) Ross Goble