【问题标题】:REMOTE_ADDR not workingREMOTE_ADDR 不工作
【发布时间】:2013-07-19 03:59:31
【问题描述】:

我有一个奇怪的问题。无论我做什么,IP 都是服务器的 IP,而不是客户端/访问者的 IP。怎么办?

if(isset($_SERVER['HTTP_X_FORWARDED_FOR']) && $_SERVER['HTTP_X_FORWARTDED_FOR'] != '') {
    $ip_address = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
    $ip_address = $_SERVER['REMOTE_ADDR'];
}
return $ip_address;
}    

【问题讨论】:

  • 你使用什么网络服务器?
  • 是进入这部分代码的控件:else { $ip_address = $_SERVER['REMOTE_ADDR']; ?
  • 您的 IP 必须在 HTTP_X_FORWARDED_FOR 上?您是否已转储 $_SERVER 并查看您还有什么?一些负载均衡器会使用不同的键。
  • 我已经转储了,是的,仍然显示错误的 IP 地址。我认为这是服务器的客户端 IP,而不是我的。我的服务器来自德国,专用。

标签: php


【解决方案1】:

您可能需要切换到另一个服务器软件(取决于您现在使用的是什么)

来自PHP docs

$_SERVER 是一个包含诸如标题、路径和脚本位置等信息的数组。此数组中的条目由 Web 服务器创建。 不能保证每台网络服务器都会提供这些;服务器可能会省略一些,或提供其他未在此处列出的变量。也就是说,在 » CGI/1.1 规范中说明了大量这些变量,因此您应该能够预料到这些变量。

REMOTE_ADDRCGI/1.1 specification 中,所以奇怪的是,您使用的任何服务器都不会返回它。

【讨论】:

  • 嗯,有没有其他解决方案?我有专用服务器。
  • @JesperMadsen 您正在运行什么操作系统和服务器软件?这才是最重要的,而不是实体盒子。
  • @JesperMadsen 显然是 php。我假设 apache 是您的网络服务器软件?如果是这种情况,则更有可能是路由问题。
  • [SERVER_SOFTWARE] => Apache/2.2.24 (Unix) mod_ssl/2.2.24 OpenSSL/1.0.0-fips mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635
  • @JesperMadsen 支持您使用的任何托管服务提供商都是一个不错的起点。
【解决方案2】:

如果您的服务器与您的服务器在同一个网络上,在具有 NAT 的路由器后面,那么您可能会看到您的私有 IP。

如果您使用反向代理,$_SERVER['REMOTE_ADDR']; 将始终是代理服务器的 IP。

【讨论】:

  • 我与服务器无关,它是专用的,我在丹麦的另一台计算机上,我的服务器来自德国。
  • @JesperMadsen:不是你的机器。请查看更新后的答案。
【解决方案3】:

您的网络服务器配置不正确(一旦我在我的虚拟主机提供商处购买别名域时遇到此问题)。 但是,如果您无法解决此问题,我HIGLY建议您检查$_SERVER['HTTP_X_FORWARDED_FOR'] 是否为有效IP 地址,然后将其分配给$_SERVER['REMOTE_ADDR'] 以方便使用,因为它很容易假 $_SERVER['HTTP_X_FORWARDED_FOR'] 并把你自己的价值观扔在那里(我有这个问题)。

【讨论】:

  • 如何配置我的服务器以使其正常工作?它是专用的,没有虚拟主机的帮助,因为它是自我管理的。
  • 很抱歉我没有修复它,因为这是我的虚拟主机提供商的问题,而不是我自己的服务器:/ Btw。我没有在这里阅读整个讨论,但是您所说的专用是什么意思?您刚刚像往常一样安装了所有东西,问题就出在这上面吗?也许它的一些网络设置,根本不知道,但你为什么不检查 HTTP_X_FORWARDED_FOR 是否是有效的 ip,如果是,则 make $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_FORWARDED_FOR'];因此您可以像往常一样在代码 REMOTE_ADDR 中的任何地方使用。对我来说听起来不错,为什么不喜欢它? :)
猜你喜欢
  • 2016-11-19
  • 2016-07-23
  • 1970-01-01
  • 2011-02-25
  • 2010-11-25
  • 2017-02-19
  • 2013-07-15
  • 1970-01-01
  • 2019-07-12
相关资源
最近更新 更多