275天 倾丞

心随我意 路行千里

PHP获取使用CloudFlare CDN网站的真实用户IP

倾丞 / 17天前 / 67 次围观 / 0 条评论 / 技术分析 / [百度已收录] / 返回

最近不是开发了倾丞随机图片API v7.0吗,实际上在编写恶意IP拦截功能时遇到一个问题,简单交流一下。

QQ图片20200717151455.png

正常情况下获取用户IP使用第71行的全局变量是完全没有问题的

$_SERVER["REMOTE_ADDR"]

然而如果网站使用了CDN或者反向代理等镜像措施且无真实IP传递功能,那么就会取到CDN的回源IP

对于CloudFlare的解决方案(直接调用CDN提供的变量)

// 用户 IP 地址
$_SERVER["HTTP_CF_CONNECTING_IP"]
// 用户的国家代码,例如 CN, EN, CA 等
$_SERVER["HTTP_CF_IPCOUNTRY"] 
未显示?请点击刷新