I have worked extensively before with Minecraft-related programming tasks. I used to develop Bukkit plugins ([login to view URL]) and used to run a Minecraft server hosting company.
The minecraft protocol sends the original connection domain starting at the third byte of the TCP connection after the initial handshake, so a connection to "[login to view URL]" would appear as:
f02f9 3132372e302e302e31, where f02f9 is the pre-pended 'starting' hex. However, a connection to localhost appears as:
f02f9 6c6f63616c686f7374 (You can see f02f9 is still used as the initial hex data). Anything after the initial hex data can be red until you get to padding 'ffffff' after which an additional 'dd2b09' is generally sent before the username.
I developed a quick version of a full-duplex Java proxy a few months ago for a project involving TCP stream manipulation, and could easily adapt it to your uses. Shoot me a PM if you have any additional questions. Keep in mind the main server will have to have low-latency connections to all of the servers you are redirecting users to, as the traffic will be routed through the initial server.