在ASP.NET Core中获取客户端IP地址
随着ASP.NET的发展,有不同的方式从请求中访问客户端IP地址。WebForms和MVC Web应用程序只是访问当前HTTP上下文的请求。
var ip = HttpContext.Current.Request.UserHostAddress;
或者只是直接引用当前的Request
var ip = Request.UserHostAddress;
但是,这在ASP.NET Core 2.0及更高版本中不起作用。您必须从ConfigureServices方法中的Startup.cs类中注入 HttpContextAccessor实例。
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddSingleton <IHttpContextAccessor,HttpContextAccessor>();
}
现在我们需要在我们的控制器构造函数中使用它并将其分配给控制器级别声明的变量。这样,它可以从控制器中的所有Actions访问。
[Route("api/[controller]")]
[ApiController]
public class IPAddressController : ControllerBase
{
private readonly IHttpContextAccessor httpContextAccessor;
public IPAddressController(IHttpContextAccessor httpContextAccessor)
{
this.httpContextAccessor = httpContextAccessor;
}
[HttpGet]
public IActionResult Get()
{
return Content(this.httpContextAccessor.HttpContext.Connection.RemoteIpAddress.ToString());
}
}
在ASP.NET Core中获取客户端IP地址的更多相关文章
- 负载均衡的场景下ASP.NET Core如何获取客户端IP地址
在ASP.NET中,使用负载均衡时,可以通过ServerVariables获取客户端的IP地址. var ip = request.ServerVariables["HTTP_X_FORWA ...
- (转)【ASP.NET开发】获取客户端IP地址 via C#
[ASP.NET开发]获取客户端IP地址 via C# 说明:本文中的内容是我综合博客园上的博文和MSDN讨论区的资料,再通过自己的实际测试而得来,属于自己原创的内容说实话很少,写这一篇是为了记录自己 ...
- 在ASP.NET Core中获取客户端和服务器端的IP地址(转载)
随着ASP.NET的发展,有不同的方式从请求中访问客户端IP地址.WebForms和MVC Web应用程序只是访问当前HTTP上下文的请求. var ip = HttpContext.Current. ...
- 在ASP.NET Core 2.x中获取客户端IP地址
一.前言 大家也知道服务端请求时我们获取的IP地址是包含在请求头中,因此这也大大便利了IP的获取. 在ASP.NET中,可以通过以下方式获取客户端的IP地址. HttpContext.Current. ...
- 再论 ASP.NET 中获取客户端IP地址
说到IP获取无非是我们常见的以下几种方式,但是具体获取的值具体区别在哪?网上不乏相关文章,说的也是很详细,但是真正使用起来,还有很多不太对的地方.IP在不同系统中,应用相当广泛,常见的日志记录.广告分 ...
- vue中获取客户端IP地址(不需要额外引入三方文件)
之前看了几种方法 ,都是引入腾讯,新浪,搜狐等的三方js文件来查询IP地址,但是我自己测试的时候IP地址不准确,所以就找了找,发现了这个方法,准确的获取到了IP地址和cmd的ipconfig获取到的I ...
- 集群环境下JSP中获取客户端IP地址的方法
String ip = request.getHeader("X-Forwarded-For");if (ip == null || ip.length() == 0 || &qu ...
- .net core webapi 后台获取客户端ip地址
Asp.Net Core2.0获取客户IP地址,及解决发布到Ubuntu服务器获取不到正确IP解决办法 1.获取客户端IP地址实现方法(扩展类) 1 using Microsoft.AspNetC ...
- 获取客户端IP地址 via C#
获取客户端IP地址 via C# 说明:本文中的内容是我综合博客园上的博文和MSDN讨论区的资料,再通过自己的实际测试而得来,属于自己原创的内容说实话很少,写这一篇是为了记录自己在项目中做过的事情,同 ...
随机推荐
- Jmeter函数助手
1.__Random:产生0-10之间的随机数[__RadomString:随机生成字符函数同__Random]
- symfony小练习-表白墙
过上一个博客系统以及对官方示例程序的基本学习,目前对symfony的各个组件有了一定的学习,学校布置了一个表白墙任务,这里就这个任务的完成进行记录 ...........2019.3.20.22.31 ...
- cgi、fast-cgi、php-pfm关系
CGI是一种规定了服务器和处理进程的数据传输格式的协议 如:nginx 和 php处理进程之间的数据传输是使用cgi格式来相互传输数据 CGI 是 接到请求,fork一条进程来处理,处理完后就退出. ...
- 数据分析——pyecharts
导入类库 from pyecharts import Pie, Bar, Gauge, EffectScatter, WordCloud, Map, Grid, Line, Timeline impo ...
- C语言可变参数
前段时候在实现利用redis进行的一个数据库比对的功能,稍微去分析了一下redis里面的源代码,然后发现其中的发送命令接口声明如下: void *redisCommand(redisConnect * ...
- 如何给网站添加IE浏览器升级提示
1.在代码编辑器中(如Notepad++)打开网站头部模板 2.使用<!––[if IE]>语句添加升级提示,如: 判断是否IE(包含使用IE内核的浏览器) <!––[if IE]& ...
- Spring SpringMVC SpringBoot SpringCloud概念、关系及区别
一.正面解读: Spring主要是基于IOC反转Beans管理Bean类,主要依存于SSH框架(Struts+Spring+Hibernate)这个MVC框架,所以定位很明确,Struts主要负责表示 ...
- php GD库快速消耗CPU资源漏洞 CVE-2018-5711测试
漏洞说明: 用一张GIF图片就可导致服务器发生崩溃直至宕机,在现实中非常容易利用. 影响版本: PHP 5 < 5.6.33 PHP 7.0 < 7.0.27 PHP 7.1 < 7 ...
- HTML入门11
在网页中添加矢量图形, 使用矢量图形在很多情况下,效果较好,拥有较小的文件尺寸,高度缩放,下面具体讲解如何在网页中添加矢量图形 位图和矢量图 位图文件包含了每个像素的位置和色彩信息,流行的位图格式包括 ...
- 实现lodash.get功能
function deepGet(object, path, defaultValue) { return (!Array.isArray(path) ? path.replace(/\[/g, '. ...