Hi nauna,
After trying a lot i conclude that there is no reliable way to achieve this. You could use heuristics to look for some HTTP request headers that might be sent by the proxy server such as Via or X-Forwarded-For.
string header = Request.Headers["Via"] ?? Request.Headers["X-Forwarded-For"];
if (!string.IsNullOrEmpty(header))
{
// probably the request was forwarded from a proxy server
// but you cannot be 100% sure as HTTP request headers can be faked
}
You can check with the below links. These might help you.
http://stackoverflow.com/questions/13744141/an-efficient-way-to-check-an-ip-address-if-it-is-a-proxy-of-any-sort