Get client IP address from server
04 Nov 2016
public static IPAddress GetIpAddress(HttpRequestBase request)
{
string[] headers = new string[]{
"CLIENT-IP",
"X-FORWARDED",
"X-CLUSTER-CLIENT-IP",
"FORWARDED-FOR",
"FORWARDED"
}
IPAddress pAddress = null;
if (request.Headers["X-FORWARDED-FOR"] != null)
{
string item = request.Headers["X-FORWARDED-FOR"];
if (IPAddress.TryParse(item.Split(new char[] { ',' })[0].Trim(), out pAddress))
return pAddress;
}
else
{
foreach (var h in headers)
if (IPAddress.TryParse(request.Headers[h], out pAddress))
return pAddress;
}
IPAddress.TryParse(request.UserHostAddress, out pAddress);
return pAddress;
}