【问题标题】:Getting IP Address of website client returning host IP获取网站客户端的IP地址返回主机IP
【发布时间】:2020-04-06 06:44:00
【问题描述】:

我有一个通过 IIS 托管的网站,并希望有一个包含 .在那个 testfile.aspx 中,我想获取客户端的 IP 地址并根据要求进行重定向。但是,当我尝试获取 ip 地址时,我得到的是我的网站所在的机器的 ip,而不是用户

How to get a user's client IP address in ASP.NET?

我已经尝试了上面链接中的所有方法,它们都返回了主机的 IP 地址。我已经尝试了包含页面中的代码以及示例测试页面后面的代码,但仍然无法正常工作。

版本 1

Dim ipAdd As String 
ipAdd = Request.ServerVariables("REMOTE_ADDR")
ClientScript.RegisterStartupScript(Me.GetType(), "myalert", "alert('This is your ip " & ipAdd & "');", True)

第 2 版

ClientScript.RegisterStartupScript(Me.GetType(), "myalert", "alert('This is your ip " & Request.UserHostAddress & "');", True)

这两种方法都返回我的 IIS Web 服务器的公共 IP

【问题讨论】:

  • 产生一些流量,然后检查您的 IIS 日志以查看传入的客户端 IP 地址是否是您希望看到的。
  • 询问您的提供商是否使用NAT。如果它可以被禁用。
  • 我的日志只显示主机的 ip,我们确实使用了 NAT,但它不能被禁用,这很好我只对公共 ip 感兴趣
  • @JohnWu 查看我的跟踪日志文件,它将主机的 ip 列为 s-ip 列
  • 检查是否有 x-forwarded-for 标头(例如,通过将其添加到 IIS 日志中)。如果有,您可以使用它。

标签: asp.net iis


【解决方案1】:

客户端 IP 地址似乎正在传输到您的应用程序的数据路径中的某处被转换,例如通过代理、NAT 或负载平衡器。

您需要找出位置并将其配置为在 x-forwarded-for 标头中保留原始 IP 地址。现代网络设备都有这个选项。

如果不转发原始 IP 地址,您的代码就无法从任何 API 中检索它。你无法阅读你没有的东西。

【讨论】:

  • 谢谢@John Wu,将此问题提交给网络管理员,他们解决了 NAT 策略中的问题,并且能够使用 KH S 发布的代码。
  • 很抱歉在回答后回来,但 nat 策略已被删除,现在很多其他的东西都不起作用,所以需要一个策略我如何修改它以获得 x-forwarded-for 属性
【解决方案2】:

我在类文件中使用它来获取 UserHostAddress,它是连接客户端的 IP 地址:

string sUserHostAddress = HttpContext.Current.Request.UserHostAddress;

我正在使用 WebForms,我可以使用它在代码隐藏文件中获取它:

string sUserHostAddress = Request.UserHostAddress;

希望这会有所帮助。

编辑: 我在我的网站上放了一个页面,您可以在其中看到结果。 Check your IP address

【讨论】:

  • 你好 KH S ,在我的 webforms 项目中尝试其中任何一种方法都会返回网站所在主机的 ip。
  • 您的机器上是否有本地运行的站点?这时候我也明白了。如果您使用不同的计算机,您应该会看到不同的 IP 地址。在网络服务器上,您将看到客户端的实际 IP 地址。如果您使用网络服务器上的网络浏览器访问该网站,情况也是如此。
  • 当我在 VS 中测试时,我获得了本地 ip (127.0.0.1),我的网站是通过网络服务器上的 iis 托管的。通过我桌面上的网络浏览器访问仍然返回主机的公共 ip
  • 我已经在我的网站上放置了一个网页并编辑了答案以让您到达那里。这是我希望你看到的。你能发布一些你的实现代码吗?
  • 我已经添加了我正在使用的代码。两者都在后面的 aspx 代码的 Page_Load() 函数上调用。
猜你喜欢
  • 2011-07-22
  • 2014-12-08
  • 2019-01-14
  • 2019-11-13
  • 1970-01-01
  • 1970-01-01
  • 2013-07-07
  • 2011-05-26
相关资源
最近更新 更多