javascript - PHP如何透过高匿代理IP获取到客户端真实IP?
PHP中文网
PHP中文网 2017-04-10 17:49:48
[JavaScript讨论组]

我用了www.xicidaili.com上的代理IP试了下,用了代理IP以后,纯真、IP138显示的都是代理IP而非我本机真实IP。
用这个函数获取出来的IP也是代理IP而非真实IP

function getIP()
{
global $ip; 
if (getenv("HTTP_CLIENT_IP"))
$ip = getenv("HTTP_CLIENT_IP"); //可通过http头伪造
else if(getenv("HTTP_X_FORWARDED_FOR")) 
$ip = getenv("HTTP_X_FORWARDED_FOR"); //可通过http头伪造
else if(getenv("REMOTE_ADDR")) 
$ip = getenv("REMOTE_ADDR"); //可能是用户真实IP也可能是代理IP
else 
$ip = "";
return $ip; 
}

有什么办法能够透过这种高匿代理IP获取到真实IP?

PHP中文网
PHP中文网

认证0级讲师

全部回复(4)
阿神

没有办法。

所以如果想要过滤恶意请求,就尽量别动这方面的歪脑筋。
做过滤就老老实实按照账号做过滤,按照IP过滤只能作为辅助手段。

PHPz

没有办法,因为经过代理服务器转发,会重新封包,报文里的ip都是代理的了……

迷茫

如果是Chrome可以试试WebRTC。

天蓬老师

不能。
使用代理之后 HTTP_CLIENT_IP 、HTTP_X_FORWARDED_FOR 可通过http头伪造,不能信任,REMOTE_ADDR倒是一个真实 ip ,但是代理的ip

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号