找回密码
 会员注册
查看: 168|回复: 0

在ASP.NET Core中获取客户端IP地址

[复制链接]

1389

主题

5

回帖

496万

积分

管理员

积分
4962990
发表于 2024-2-29 08:06:05 | 显示全部楼层 |阅读模式

随着ASP.NET的发展,有不同的方式从请求中访问客户端IP地址。WebForms和MVC Web应用程序只是访问当前HTTP上下文的请求。

 

  1. var ip = HttpContext.Current.Request.UserHostAddress;
复制代码

 

或者只是直接引用当前的Request 

  1. var ip = Request.UserHostAddress;
复制代码

但是,这在ASP.NET Core 2.0及更高版本中不起作用。您必须从ConfigureServices方法中的Startup.cs类中注入  HttpContextAccessor实例。

  1. public void ConfigureServices(IServiceCollection services)
  2. {
  3. services.AddMvc();
  4. services.AddSingleton <IHttpContextAccessor,HttpContextAccessor>();
  5. }
复制代码

现在我们需要在我们的控制器构造函数中使用它并将其分配给控制器级别声明的变量。这样,它可以从控制器中的所有Actions访问。

 

  1. [Route("api/[controller]")]
  2. [ApiController]
  3. public class IPAddressController : ControllerBase
  4. {
  5. private readonly IHttpContextAccessor httpContextAccessor;
  6. public IPAddressController(IHttpContextAccessor httpContextAccessor)
  7. {
  8. this.httpContextAccessor = httpContextAccessor;
  9. }
  10. [HttpGet]
  11. public IActionResult Get()
  12. {
  13. return Content(this.httpContextAccessor.HttpContext.Connection.RemoteIpAddress.ToString());
  14. }
  15. }
复制代码

 


来源:https://blog.csdn.net/qq_39110534/article/details/85241572
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2024-12-26 13:09 , Processed in 0.335659 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表