用户运行托管 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 地址的主要内容,如果未能解决你的问题,请参考以下文章
先定一个小目标Asp.net Core 在IIS上的托管运行
如何使用 HTTP 连接通过托管在 IIS 上的 ASP.NET 成员身份保护 ASP.NET Web API [重复]