【问题标题】:How to get the client IP address in asp.net when user runs hosted IIS link用户运行托管 IIS 链接时如何在 asp.net 中获取客户端 IP 地址
【发布时间】:2021-07-18 05:32:12
【问题描述】:

我在 IIS 中托管我的代码,我想在任何用户使用我的托管链接登录我的应用程序时获取用户 Ip。 例如,如果有 10 个不同的用户从 10 个不同的系统访问我的链接,我想在 asp.net c# 中获取所有这 10 个不同的 IP 地址。 相同的代码是否会同时带来服务器和 IP 地址。我使用的是 Asp.net 4.5 -c#

【问题讨论】:

    标签: javascript c# asp.net asp.net-web-api


    【解决方案1】:

    可能是以下之一:

    HttpContext.Current.Request.ServerVariables.Item("REMOTE_HOST")
    HttpContext.Current.Request.ServerVariables.Item("REMOTE_ADDR")
    

    或者……

    HttpContext.Current.Request.ServerVariables.Item("X-Forwarded-For")
    

    ...如果您的服务器位于代理后面。请注意,最后一个很容易被伪造(并且 IP 也是可伪造/可更改的),所以不要依赖它来处理与安全相关的任何事情

    【讨论】:

    • 嗨 caius,这不起作用。你能分享我的代码行吗
    • 作为一个错误报告,“这不起作用”不起作用..
    【解决方案2】:

    您可以通过此代码获取客户端IP:

    HttpContext.Current.Request.UserHostAddress
    

    【讨论】:

      【解决方案3】:

      您可以像这样获取您的 IP 地址:

      var remoteIpAddress = request.HttpContext.Connection.RemoteIpAddress;
      

      【讨论】:

        猜你喜欢
        • 2017-04-29
        • 2015-04-24
        • 2014-02-21
        • 1970-01-01
        • 2011-02-04
        • 2020-04-29
        • 2012-03-14
        • 2012-02-16
        相关资源
        最近更新 更多