使用UPYUN(又拍云)CDN后获取访客真实IP

  • A+
所属分类:网站建设

国内大多数的CDN在回源访问的时候都会带上X_FORWARDED_FOR请求头,里面包含有HTTP的请求端真实的IP。但UPYUN CDN在回源的时候没有带X_FORWARDED_FOR请求头,所以原使用HTTP_X_FORWARDED_FOR获取访客真实IP的程序失效。

upyun

按照UPYUN CDN说明文档,UPYUN CDN 回客户源的时候会带这个 X_REAL_IP 的请求头下去,值为用户实际访问 CDN 的来源 IP 地址。同时为了兼容部分服务端程序,UPYUN CDN还额外还提供了 CLIENT_IP 请求头的支持,其值和 X_REAL_IP 相同。所以如果站点使用UPYUN做CDN加速,可以通过HTTP_CLIENT_IP或者HTTP_ X_REAL_IP来代替原HTTP_X_FORWARDED_FOR获取访客真实IP。

以Wordpress为例,可以在Wordpress配置文件wp-config.php第一个<?php 后面加入以下代码,使Wordpress获取访客的真实IP:

  1. /*使用upyun后获取访客真实IP */
  2. /*文章地址:http://www.duoluodeyu.com/2328.html */
  3. if(isset($_SERVER['HTTP_CLIENT_IP']))
  4. {
  5. $list = explode(',',$_SERVER['HTTP_CLIENT_IP']);
  6. $_SERVER['REMOTE_ADDR'] = $list[0];
  7. }

  1. /*使用upyun后获取访客真实IP */
  2. /*文章地址:http://www.duoluodeyu.com/2328.html */
  3. if(isset($_SERVER['HTTP_X_REAL_IP']))
  4. {
  5. $list = explode(',',$_SERVER['HTTP_X_REAL_IP']);
  6. $_SERVER['REMOTE_ADDR'] = $list[0];
  7. }

延伸阅读:

使用CDN后的WordPress怎样获取访客IP

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: