asp.net-core - 获取 API 调用者的 IP 地址
问题描述
我有一个dotnet
core
ASP
3.1MVC
服务器应用程序。我GET
通过controllers
. 有没有办法让IP address
调用者的API?
解决方案
您可以使用 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>();
...
}
推荐阅读
- spring-boot - spring boot 在运行测试类时没有选择测试属性
- octave - 八度精度波动
- swift - 映射单个 CoreData 属性
- c# - .NET 导致私有数据内存泄漏?
- python - Python Selenium:仍在努力掌握配置文件和选项的工作方式:尝试禁用 Firefox 弹出密码管理器
- javascript - 如何访问我的分页 html 文档中的 if 函数中的变量“page”?
- mysql - 表和视图的列类型不同
- html - 将浏览器从移动尺寸调整为 PC 时删除 iframe 下方的空白
- php - laravel 项目的 nginx 动态 doute 使用第一个参数
- azure - Trigger azure Webjob from powershell / azure devops