Если у вас есть доступ к HttpContext, вы можете получить локальный/удаленный IpAddress из свойства Connection следующим образом:
var remote = this.HttpContext.Connection.RemoteIpAddress;
var local = this.HttpContext.Connection.LocalIpAddress;
Ответ 3
HttpRequest.UserHostAddress дает IP-адрес удаленного клиента. В ASP.NET Core 1.0 вам нужно использовать функцию HTTP-соединения, чтобы получить то же самое. HttpContext имеет метод GetFeature<T>, который можно использовать для получения определенной функции. Например, если вы хотите получить удаленный IP-адрес из метода действия контроллера, вы можете сделать что-то вроде этого.
var connectionFeature = Context
.GetFeature<Microsoft.AspNet.HttpFeature.IHttpConnectionFeature>();
if (connectionFeature != null)
{
string ip = connectionFeature.RemoteIpAddress.ToString();
}
Ответ 4
Для aspnet rc1-update1 я нашел IP (с портом) в заголовке X-Forwarded-For, доступ к которому можно получить с контроллера как HttpContext.Request.Headers["X-Forwarded-For"].FirstOrDefault().