I’ve created a WwwServer library to serve files from the SD card. It’s designed to split the request into many short tasks (in testing worst case is < 30ms) so that it doesn’t interrupt data logging tasks. For a description and background see http://blog.stevemarple.co.uk/2011/07/web-server-for-arduino.html
The code is here:
I’d like to add access control based on remote IP address, but I can’t see how I can get this information from Server (or Client). Is it possible, and how?