帮助文档

CDN加速怎么获取用户真实IP

要获取通过CDN访问您网站的用户真实IP,您需要配置CDN服务商提供的特定功能,因为标准的HTTP头部信息(如X-Forwarded-For)可能会被CDN改写或者不适用。以下是一些流行CDN服务商的方法:

  1. Amazon CloudFront: 使用X-Forwarded-For头部,但需要在CloudFront分配设置中进行特定配置。
  2. Cloudflare: 使用X-Real-IPCF-Connecting-IP头部。
  3. Google Cloud CDN: 使用X-Forwarded-ForX-Real-IP头部。
  4. 国内商用CDN通常采用:X-Forwarded-For 简称:xff

以下是一个简单的php示例代码,用于检查这些头部,以获取用户的真实IP地址:

<?php

$realIp = null;

// 根据您使用的CDN服务商选择合适的头部

if (isset($_SERVER['HTTP_X_REAL_IP'])) {

$realIp = $_SERVER['HTTP_X_REAL_IP'];

} elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {

$realIp = $_SERVER['HTTP_X_FORWARDED_FOR'];

} elseif (isset($_SERVER['HTTP_CF_CONNECTING_IP'])) {

$realIp = $_SERVER['HTTP_CF_CONNECTING_IP'];

}

// 如果需要从X-Forwarded-For中获取第一个IP

if ($realIp) {

$ips = explode(',', $realIp);

$realIp = trim($ips[0]);

}

// 使用$realIp变量,该变量包含用户的真实IP地址

echo $realIp;

?>

这段代码只是一个示例,您需要根据自己使用的CDN服务商进行相应的调整。在配置CDN时,确保启用了正确的头部信息传递设置,否则上述代码可能无法正常工作。