访问Asp.Net 5中的客户端IP地址(REMOTE_ADDR)

Aha*_*kar 4 c# asp.net asp.net-core

我试图在asp.net中获取ServerVariables ["REMOTE_ADDR"].

这是我的旧代码(webapi 2):

private Logn GLog(System.Web.Routing.RequestContext requestContext)
{
    Ln Log = new LogInformation();
    Lg.IP = requestContext.HttpContext.Request.ServerVariables["REMOTE_ADDR"];
    Lg.RemoteIP = requestContext.HttpContext.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
    ............................
Run Code Online (Sandbox Code Playgroud)

从我所学到的,他们将" Routing.RequestContext " 更改为

vNext版本中的" IHttpContextAccessor ".

我怎么能用IHttpContextAccessor获得上述结果?

这给了我" ServerVariables "部分的错误:

private Logn GLog(IHttpContextAccessor requestContext)
{
    Ln Log = new LogInformation();
    Lg.IP = requestContext.HttpContext.Request.ServerVariables["REMOTE_ADDR"];
}
Run Code Online (Sandbox Code Playgroud)

hai*_*770 6

您需要使用ConnectionInfo.RemoteIpAddress:

private Logn GLog(IHttpContextAccessor contextAccessor)
{
    Ln Log = new LogInformation();
    Lg.IP = contextAccessor.HttpContext.Connection.RemoteIpAddress.ToString();

    // ...
}
Run Code Online (Sandbox Code Playgroud)