Request.ServerVariables["REMOTE_ADDR"] and Request.UserHostAddress serves the same purpose of retrieving Client IP address.
The former is more for compatibility with ASP.
Request.ServerVariables["REMOTE_ADDR"]
Returns the IP address of the client as a string.
example:"127.0.0.1"
Request.UserHostAddress
Gets the IP host address of the remote client.
Request.UserHostName
Gets the DNS name of the remote client.
But as per this link, its mentioned that we cannot actually get an IP address thru REMOTE_ADDR, I am not able to get this point, but still want to bring it to your notice!
http://www.velocityreviews.com/forums/t92876-requestservervariablesquotremoteaddrquot-vs-requestuserhostaddress.html
Request.ServerVariables("REMOTE_ADDR") can't give you any "real address",
since no "real address" is ever sent.
An IP address is something used at the network layer, and shouldn't really
be used by your application. If your application needs to know the identity
of the sending machine, then it should use something like X.509
certificates, which are meant to represent identity (an IP address is not).