我们如何使用PHP跟踪代理背后的真实IP地址?我的意思是纯粹的PHP实现.因为他们可以关闭浏览器的js.BTW当JS打开时我可能会使用HTML 5地理位置所以我不这样做需要IP地址来定位用户.
Que*_*tin 12
您可以查看X-Forwarded-For HTTP标头(如果已发送),但无法保证知道.
Cog*_*ero 10
这个PHP代码可以工作,对前向和反向代理很有用.对于反向代理,请注意X_FORWARDED_FOR标头信息(如果可用的话)可以伪造,并且根本不应该被信任.
if($_SERVER["HTTP_X_FORWARDED_FOR"] != ""){
$IP = $_SERVER["HTTP_X_FORWARDED_FOR"];
$proxy = $_SERVER["REMOTE_ADDR"];
$host = @gethostbyaddr($_SERVER["HTTP_X_FORWARDED_FOR"]);
}else{
$IP = $_SERVER["REMOTE_ADDR"];
$proxy = "No proxy detected";
$host = @gethostbyaddr($_SERVER["REMOTE_ADDR"]);
}
Run Code Online (Sandbox Code Playgroud)
代理后面的用户没有全局可路由的 IP 地址。如果您想维护会话状态,最好生成一个会话密钥,并将其设置为 cookie,或将其保留在 URL 中(这种方法需要权衡)。
如果您确实想找出他们自己网络上的 IP 地址,您可以在页面中使用 javascript 来查找,然后将其发送回您的服务器。
| 归档时间: |
|
| 查看次数: |
26256 次 |
| 最近记录: |