随着ASP.NET的发展,有不同的方式从请求中访问客户端IP地址。WebForms和MVC Web应用程序只是访问当前HTTP上下文的请求。
var ip = HttpContext.Current.Request.UserHostAddress;
但是在Net Core 阶段我们需要使用到HttpContextAccessor对象,才可以获取到客户端的ip地址信息,需要注意的是,客户端获取到的IP 地址默认为IPV6地址,地址为 :::1,如果我们需要使用IPV4地址,即我们常见的127.0.0.1形式,需要使用方法 MapToIPv4(),才可以转换成我们想要的格式,具体如下代码所示。
1.在项目的StartUp.cs 文件中添加以下代码,实现注入HttpContextAccessor
2.在Action 中的Controller 声明处添加以下代码,实例化该对象
3.在具体的方法中获取到客户端的ip地址
4.最终结果如下
5.说明,因为是本机访问,所以显示是0.0.0.1。发布项目到服务器,再次访问就可以得到客户端的ip地址