Apache: Client-IP-based DocumentRoot
You can do this with a RewriteRule preceded by a RewriteCond that checks the remote_addr (remember using % for the vars, not $:
<VirtualHost *:80>
Servername somedomain.tld
RewriteEngine On
RewriteCond %{REMOTE_ADDR} 10.2.1.4
RewriteRule ^(.*)$ /var/www/pages-1/$1
RewriteCond %{REMOTE_ADDR} 10.3.0.
RewriteRule ^(.*)$ /var/www/pages-2/$1
</VirtualHost>
It won't be possible to change the document root, but you can rewrite the URL based on the client IP, something like...(not tested)...
RewriteCond %{REMOTE_HOST} ^10\.3\.0\.
RewriteRule ^/(.*) /pages-2/$1 [P,L]
RewriteCond %{REMOTE_HOST} ^10\.2\.1\.4$
RewriteRule ^/(.*) /pages-1/$1 [P,L]
Although it might be simpler to use an external rewriting program if the number of IP addresses is very large.