I usually do something like this:
private static string getUserIPAddress()
{
string sReturn = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (
(sReturn == null)
||
(sReturn.Length == 0)
||
(sReturn.ToLower().Equals("unknown"))
)
{
sReturn = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}
if (sReturn == null) sReturn = string.Empty;
return sReturn;
}