首页  >  文章  >  后端开发  >  在 PHP 中使用 CloudFlare 时如何获取真实访问者 IP 地址?

在 PHP 中使用 CloudFlare 时如何获取真实访问者 IP 地址?

DDD
DDD原创
2024-10-25 03:40:02765浏览

How to Get the Real Visitor IP Address When Using CloudFlare in PHP?

使用 PHP 中的 CloudFlare 检索访问者 IP 地址

通过 IP 地址跟踪用户活动是 Web 开发中的常见做法。然而,当使用CloudFlare进行缓存和其他服务时,通过PHP的$_SERVER['REMOTE_ADDR']记录的IP地址可能无法准确反映访问者的真实身份。 CloudFlare 的 IP 地址在 108.162.212. 到 108.162.239. 范围内,掩盖了实际访问者的 IP 地址。

为了解决此问题,CloudFlare 提供了几个额外的服务器变量来识别连接访客的 IP 地址:

  • $_SERVER["HTTP_CF_CONNECTING_IP"]:此变量包含访客的 IP 地址,可实现准确的 IP 地址记录。
  • $_SERVER["HTTP_CF_IPCOUNTRY "]:提供访问者的国家/地区。
  • $_SERVER["HTTP_CF_RAY"]:这是每个请求的唯一标识符。
  • $_SERVER["HTTP_CF_VISITOR"]:指示是否请求是通过 HTTP 或 HTTPS 发出的。

要在使用 CloudFlare 时检索实际访问者的 IP 地址,您可以使用以下代码:

<code class="php">if (isset($_SERVER["HTTP_CF_CONNECTING_IP"])) {
  $_SERVER['REMOTE_ADDR'] = $_SERVER["HTTP_CF_CONNECTING_IP"];
}</code>

通过设置 $_SERVER[' REMOTE_ADDR'] 到 $_SERVER["HTTP_CF_CONNECTING_IP"] 的值,您可以确保 IP 地址日志正确识别您网站的访问者。

请注意,访问 IP 地址的有效性可能仍需要验证,因为任何人都可能欺骗标头信息。

以上是在 PHP 中使用 CloudFlare 时如何获取真实访问者 IP 地址?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn