【问题标题】:Getting users IP address when on server [duplicate]在服务器上获取用户IP地址[重复]
【发布时间】:2020-07-28 15:51:35
【问题描述】:

我正在尝试获取当前用户的 IP 地址,它可以在本地运行,但现在我的项目已经上线,它根本没有获取 IP 地址。

这是我正在做的本地工作:

var context = new PrincipalContext(ContextType.Domain);
        var principal = UserPrincipal.FindByIdentity(context, System.Web.HttpContext.Current.User.Identity.Name);

【问题讨论】:

  • 您可能得到的是机器名而不是 IP。您需要 IP 还是可以接受主机名?
  • @jdweng 是的,非常抱歉。我刚刚更新了代码。我粘贴了错误的行。我需要 IP 地址。
  • 实际上想要完成什么?为什么您的网络应用需要用户的 IP 地址?
  • @DanielMann 这是一个内部应用程序,当他们使用这个特定应用程序时,我需要将用户 IP 地址存储在数据库中。
  • “我需要将用户 IP 地址存储在数据库中” ...这仍然是要求,而不是原因。为什么要存储 IP 地址?那会有什么目的?此外,单个用户可以在不同场合从多个不同的 IP 地址轻松登录应用程序。同样,由于 NAT 等技术,多个用户可能都拥有相同的(公共)IP 地址。所以“用户的 IP 地址”的概念一开始就有些缺陷——现在网络上很少有这样的东西

标签: c# model-view-controller


【解决方案1】:

试试这个

var ipAdress = context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];

【讨论】:

  • 现在返回为空
  • 有没有办法使用 HttpActionContext 代替 PrincipalContext?
猜你喜欢
  • 1970-01-01
  • 2023-04-08
  • 2018-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-28
  • 2021-05-14
  • 1970-01-01
相关资源
最近更新 更多