c# - 在 Asp.Net 5 中访问客户端 IP 地址 (REMOTE_ADDR)

标签 c# asp.net asp.net-core

我正在尝试在 asp.net 中获取 ServerVariables["REMOTE_ADDR"]

这是我的旧代码(webapi 2):

private Logn GLog(System.Web.Routing.RequestContext requestContext)
{
    Ln Log = new LogInformation();
    Lg.IP = requestContext.HttpContext.Request.ServerVariables["REMOTE_ADDR"];
    Lg.RemoteIP = requestContext.HttpContext.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
    ............................

据我了解,他们将“Routing.RequestContext”更改为

vNext 版本中的“IHttpContextAccessor”。

如何使用 IHttpContextAccessor 实现上述结果?

这让我在“ServerVariables”部分出错:

private Logn GLog(IHttpContextAccessor requestContext)
{
    Ln Log = new LogInformation();
    Lg.IP = requestContext.HttpContext.Request.ServerVariables["REMOTE_ADDR"];
}

最佳答案

您需要改用 ConnectionInfo.RemoteIpAddress:

private Logn GLog(IHttpContextAccessor contextAccessor)
{
    Ln Log = new LogInformation();
    Lg.IP = contextAccessor.HttpContext.Connection.RemoteIpAddress.ToString();

    // ...
}

关于c# - 在 Asp.Net 5 中访问客户端 IP 地址 (REMOTE_ADDR),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33999011/

相关文章:

c# - 标签中的路径显示

html - 将粗体悬停在单元格内容上时,表格单元格正在扩展

c# - ASP.NET Core 中的应用程序启动代码

c# - 有没有办法注册免激活EXE COM组件

c# - 从没有数据的查询中获取列名

c# - 如何得到 Nancy 谈判代表的回应?

c# - 使用带结构图的命名 session 实例策略的 Setter 剖分

asp.net - listview 插入项模板中的下拉列表将 null 传递给数据库

javascript - ASP.NET Core API 中的模型绑定(bind)始终为 null

.net-assembly - 如何将 DNU WRAP 用于不在 ASP.Net 项目解决方案中的项目