我们发现它Request.UserHostAddress
在 ASP.NET Core (1.0 RC1) 中不可用,以及Request.ServerVariables["REMOTE_ADDR"]
返回基本相同的 .
现在我们找到HttpContext.Connection.RemoteIpAddress
或HttpContext.Features.Get<IHttpConnectionFeature>()?.RemoteIpAddress
成为替代品,但它真的是功能的 1:1 替代品吗?
我的意思是:Request.ServerVariables["REMOTE_ADDR"]
只返回调用者的直接 IP 地址,而不是转发的客户端地址(因此你必须 get "X-FORWARDED-FOR"
)。这就是我们在场景中需要的:直接调用者地址,而不是转发地址。但是,如果 ASP.NET Core 对我们来说是正确的选择,我们找不到任何信息HttpContext.Connection.RemoteIpAddress
(如果不是,还有什么选择?)。