I have MVC application on load balance server and I want to set real client's IP address. I added "X-Forwarded-For" on custom header and use c#.net code as below to get IP address but it return null. Please help me how I can check or how I can do. Thank you.
Add custom header :
Response.AddHeader("X-Forwarded-For", "client1, proxy1, proxy2");
c#.net code :
string IP_REMOTE_ADDR = string.Empty;
string IP_HTTP_X_FORWARDED_FOR = string.Empty;
string RETURN_IP = string.Empty;
IP_REMOTE_ADDR = string.IsNullOrEmpty(System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]) ? "" : System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
IP_HTTP_X_FORWARDED_FOR = string.IsNullOrEmpty(System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]) ? "" : System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (IP_HTTP_X_FORWARDED_FOR != "")
{
RETURN_IP = IP_HTTP_X_FORWARDED_FOR;
if (RETURN_IP.Contains(","))
{
RETURN_IP = RETURN_IP.Split(',')[0];
}
}
else
{
if(IP_REMOTE_ADDR != "")
{
RETURN_IP = IP_REMOTE_ADDR;
}
else
{
RETURN_IP = "";
}
}
return RETURN_IP;