我们如何使用PHP追踪代理背后的真实IP地址?我的意思是,一个纯粹的PHP implementation.Because,当js打开时,他们可以关闭他们的browsers.BTW的JS,我可能使用HTML5地理定位,所以我不需要IP地址来定位用户。
发布于 2011-03-18 16:42:09
如果发送了X-Forwarded-For HTTP报头,您可以查看该报头,但是没有保证知道的方法。
发布于 2011-03-18 17:52:15
这段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"]);
}发布于 2011-03-18 16:40:21
代理后的用户没有全局可路由的IP地址。如果您想要维护会话状态,最好使用您生成的会话密钥,并将其设置为cookie,或者将其保存在URL中(这种方法是有权衡的)。
如果你真的想知道他们的IP地址在他们自己的网络上是什么,你可以在页面中使用javascript找到它,然后把它发送回你的服务器。
https://stackoverflow.com/questions/5349604
复制相似问题