如何跟踪代理后面的真实IP地址

时间:2011-03-18 08:31:01

标签: php

我们如何使用PHP跟踪代理背后的真实IP地址?我的意思是纯粹的PHP实现。因为他们可以关闭浏览器的js .BTW当JS打开时我可能会使用HTML 5地理定位所以我不需要IP地址来定位用户。

3 个答案:

答案 0 :(得分:12)

如果发送了一个X-Forwarded-For HTTP标头,您可以查看它,但无法保证知道。

答案 1 :(得分: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"]);
}

答案 2 :(得分:1)

代理服务器后面的用户没有可全局路由的IP地址。如果你想保持会话状态,你最好使用你生成的会话密钥,并将其设置为cookie,或将其保存在URL中(这种方法存在权衡)。

如果您真的想知道他们的IP地址在他们自己的网络上是什么,您可以在页面中使用javascript找到它,然后将其发送回您的服务器。