首页 > 解决方案 > 获取 API 调用者的 IP 地址

问题描述

我有一个dotnet core ASP3.1MVC服务器应用程序。我GET通过controllers. 有没有办法让IP address调用者的API?

标签: asp.net-core.net-core

解决方案


您可以使用 IHttpContextAccessor 来获取 IP。在您的控制器中使用此代码:

[ApiController]
[Route("[controller]")]
public class YourController : ControllerBase
{

    private readonly IHttpContextAccessor accessor;

    public YourController (IHttpContextAccessor accessor)
    {
        this.accessor = accessor;
    }

    [HttpGet]
    public void Get()
    {
        var ip= accessor.HttpContext.Connection.RemoteIpAddress.ToString();
    }
}

并在 Startup.cs 中将这行代码添加到您的 ConfigureServices 中:

public void ConfigureServices(IServiceCollection services)
{
    ...
    services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
    ...
}

推荐阅读