用户运行托管 IIS 链接时如何在 asp.net 中获取客户端 IP 地址

Posted

技术标签:

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

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

【问题讨论】:

【参考方案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;

【讨论】:

以上是关于用户运行托管 IIS 链接时如何在 asp.net 中获取客户端 IP 地址的主要内容,如果未能解决你的问题,请参考以下文章

在 IIS7 中托管 ASP.NET 会导致访问被拒绝?

我可以在 IIS 之外托管 ASP.NET 网站吗?

先定一个小目标Asp.net Core 在IIS上的托管运行

如何使用 HTTP 连接通过托管在 IIS 上的 ASP.NET 成员身份保护 ASP.NET Web API [重复]

在 IIS 中托管 ASP Net Core 应用程序时无限页面加载

无法在 ASP.NET Core 5.0 下的 IIS 中托管 CoreWcf