Я просто пытаюсь получить IP-адрес клиента в контроллере .net-core после того, как они POST. У нас есть балансировщик нагрузки между клиентом и сервером.
Настройка в моем стартапе:
services.Configure<ForwardedHeadersOptions>(options =>
{
options.ForwardedHeaders =
ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto;
});
И настроить:
app.UseForwardedHeaders();
Затем я пытаюсь вызвать приведенный ниже код, но он возвращает IP-адрес балансировщика нагрузки, а не IP-адрес клиента:
var clientIpAddress = HttpContext.Connection.RemoteIpAddress.ToString();
Я перепробовал все, что мог найти на этом веб-сайте и в документации, и ничего не работает. Я также пытался использовать HttpContext.Request.Headers["X-Forwarded-For"]
, который возвращает null/пусто.
Наша команда OPS говорит, что IP-адрес не изменяется балансировщиком и должен быть в значении заголовка x-Forwarded-For. Почему балансировщик нагрузки отправляет обратно свой IP-адрес, а не IP-адрес клиента?