一般CDN的文件头都是 HTTP_X_FORWARDED_FOR
今天用上了百度云加速商业版(买一年送一年),用上了以后发现用户登录IP都是百度云加速的节点IP。
马大哈一般的翻了翻百度云的文档也没找到解决办法。
你看看你的 _SERVER 里边儿的信息哪个是你的 IP
新建个php文件,然后打开这个文件查看。
<?php
print_r($_SERVER);
然后发现居然是 HTTP_CF_CONNECTING_IP
然后在WHMCS后台设置代理 IP 头部为 HTTP_CF_CONNECTING_IP。但是为了保险起见我还在whmcs的站点根目录配置文件中(configuration.php)加入配置。
$_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_CF_CONNECTING_IP'];
但是这种方式的话,通过源IP访问就不行了,所以我想到了一个更方便的。
$_SERVER['REMOTE_ADDR'] = ($_SERVER['HTTP_CF_CONNECTING_IP'] ?: $_SERVER['HTTP_X_FORWARDED_FOR']) ?: $_SERVER['REMOTE_ADDR'];
这样就都兼顾到了。