很多站长都会遇到这样的问题,网站使用CDN加速后,统计分析工具提供的用户访问IP地址大多非真实IP地址。
这是因为使用CDN网络加速后,所有的用户请求都会通过CDN边缘节点访问,如边缘节点没有缓存,就会向客户源站服务器发起请求,故无法依照之前的方式获取最终用户IP地址。
如果站长需要获取最终用户IP,则可根据网站编写的脚本语言自行选择下列代码。
PHP:
$user_IP ($_SERVER["HTTP_X_REAL_IP"]);
ASP:
<% Request.ServerVariables("HTTP_X-Real-IP") %>
Java:
String srcIp request.getHeader("X-Real-IP");
C#:
String srcIp Request.Headers["X-Real-IP"];
Asp.net:
如果用ServerVariables来获取参数,因为ServerVariables有编码解码的过程,因此应该用HTTP_Cdn_Src_Ip来获取变量,如:
result HttpContext.Current.Request.ServerVariables["HTTP_X-Real-IP"];
另外,便宜vps主机博客提醒各位站长,我们需要注意的是以上代码需要在切换后才能正式生效,如未切换则可能导致获取IP错误。当然需要采购cdn加速的站长们也可参见便宜vps主机博客前文《CDN国内/国际加速流量包0.06元/GB起,续费享长期5折》。
推荐阅读
- FunCDN:亚太CN2-GIA全优化网络5Gbps防御@100G月流量,国内全高防BGP优化网络/欧美CN2普防优化网络350Gbps防御@100G月流量
- 翼龙云Yilongcloud-阿里云CDN内容分发加速服务