获取客户端的IP地址

10

在其他版本的asp.net中,我使用了HttpRequest的这些属性:

Request.ServerVariables["REMOTE_ADDR"]
Request.UserHostAddress

如何在ASP.NET Core中实现相同的功能?
4个回答

13
你可以使用IHttpContextAccessor
private IHttpContextAccessor _accessor;
public Foo(IHttpContextAccessor accessor)
{
    _accessor = accessor;
}

现在你可以这样获取IP地址

var ip = _accessor.HttpContext.Connection.RemoteIpAddress.ToString();

4
我无法在DNX(完整的CLR)上使其工作,有什么建议吗?我的应用程序中RemoteIpAddress属性为空... - Marcin Zablocki
@MarcinZablocki 你需要在Startup中进行注册: services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>(); - tarn

8

HttpContext.Connection.RemoteIpAddress 是你要寻找的属性。


0

你可以使用 Request

var GetIp = Request.HttpContext.Connection.RemoteIpAddress.ToString();

0

它运作得非常好。

var ip = request.HttpContext.Connection.RemoteIpAddress;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接