Проблема с получением клиентского IP-адреса в ASP.NET CORE Web API? - PullRequest
0 голосов
/ 10 июня 2019

Я получаю IP-адрес сервера вместо IP-адреса клиента, используя приведенный ниже метод в ASP.NET CORE Web API.Пожалуйста, скажите мне, где я иду не так.Я использовал ServerVariables["HTTP_X_FORWARDED_FOR"] в asp mvc и раньше, и это сработало правильно.

private string DetectIPAddress(HttpRequest request)
{
    var _IP = "RemoteIp:" + request.HttpContext.Connection.RemoteIpAddress.ToString() + " - LocalIpAddress:" +
                  request.HttpContext.Connection.LocalIpAddress;
    try
    {
        _IP += " IP.AddressFamily:" + Dns.GetHostEntry(Dns.GetHostName()).AddressList[1].ToString();

        _IP += " HostName:" + Dns.GetHostEntry(Dns.GetHostName()).HostName;

    }
    catch (Exception e)
    {

    }

    return _IP;
}

1 Ответ

0 голосов
/ 11 июня 2019

В Asp.Net Core Web API для получения удаленного клиента IP-адрес изменен на предыдущую версию Asp.Net

Asp.Net Core введена новая библиотека для запросов и ответов Http.

Требуетсяследующее пространство имен для добавления.

using Microsoft.AspNetCore.Http.Features;

Однажды вы добавили namespace, затем просто нужно добавить следующую строку кода для захвата IP-адреса удаленного клиента.

HttpContext.Features.Get()?.RemoteIpAddress?.ToString();

Примечание : при попытке запустить приложение из локальной системы, поэтому приведенная выше строка кода возвращает результат ":: 1", но он будет работать, когда вы развернете приложение где-нибудь

...