У меня есть приложение MVC на сервере балансировки нагрузки, и я хочу установить реальный IP-адрес клиента. Я добавил «X-Forwarded-For» в настраиваемый заголовок и использовал код С # .net, как показано ниже, чтобы получить IP-адрес, но он возвращает значение null. Пожалуйста, помогите мне, как я могу проверить или как я могу это сделать. Спасибо.
Добавить собственный заголовок:
Response.AddHeader("X-Forwarded-For", "client1, proxy1, proxy2");
С # .net код:
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;