【问题标题】:How to get proxy ip with some php function?如何使用一些 php 函数获取代理 ip?
【发布时间】:2015-03-14 11:35:04
【问题描述】:

我有两个vps,在我的vps_ip1上构建sshd并在本地机器上的firefox中安装autoproxy插件,将some_domain与vps_ip2绑定,并将read.php放在vps_ip2上。

<?php
echo  $_SERVER['REMOTE_ADDR'];
echo  "<br>";
echo  $_SERVER['REQUEST_TIME'];
echo  "<br>";
echo  $_SERVER['HTTP_X_FORWARDED_FOR'];
echo  "<br>";
echo  $_SERVER['HTTP_CLIENT_IP'];
?>  

现在我的本地ip是ip0,我用ssh连接vps_ip1并启动autoproxy,什么时候在firefox中输入some_domain/read.php,得到以下输出:

vps_ip1
1426332103

$_SERVER['HTTP_X_FORWARDED_FOR']$_SERVER['HTTP_CLIENT_IP'] 对我的 ip0 一无所知。
如何使用一些 php 函数获取我的本地 ip0?

【问题讨论】:

  • 这真的很难理解你目前的问题。
  • 尝试在 var_dump(get_defined_vars()) 中查找 IP 地址,然后告诉它始终查看所需的 IP 地址,以便它始终可以找到/记录它。

标签: php


【解决方案1】:

您需要阅读proxies 以及它们的功能。尤其是阅读关于anonymous proxies的部分。

简而言之,根据代理服务器的配置,它可能不会给出始发IP,以保护客户端的匿名性。

HTTP_X_FORWARDED_FOR 只保存代理服务器自愿提供给您的任何数据。可能什么都不是。它可能是客户端的公共 IP。它可能是客户端的本地(局域网)IP。它可能是带有或不带有客户端的前面/链接代理的逗号分隔列表。它甚至可能是任何欺骗性的 ip。

最后,您不能只信任任何代理服务器以及它在 HTTP_X_FORWARDED_FOR 标头中为您提供的内容,或者即使它为您提供了任何东西。

所以现在您需要检查您在 vps_ip1 上安装的代理服务器并禁用匿名功能。

【讨论】:

    【解决方案2】:
       <?php
       if (!empty($_SERVER["HTTP_CLIENT_IP"]))
       {
        //check for ip from share internet
        $ip = $_SERVER["HTTP_CLIENT_IP"];
       }
       elseif (!empty($_SERVER["HTTP_X_FORWARDED_FOR"]))
       {
        // Check for the Proxy User
        $ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
       }
       else
       {
        $ip = $_SERVER["REMOTE_ADDR"];
       }
    
       // This will print user's real IP Address
       // does't matter if user using proxy or not.
       echo $ip;
    
       ?>
    

    【讨论】:

    • 结果仍然是我的 vps_ip1 ,而不是我的本地 ip0 和你的代码。
    【解决方案3】:

    你必须用命令查看$_SERVER数组的内容

     print_r($_SERVER);
    

    并找出哪个变量使用您的代理来传输您的本地 IP。

    根据您的代理服务器,它可以是以下任意一种:HTTP_X_FORWARDED,HTTP_X_FORWARDED,HTTP_FORWARDED_FOR,HTTP_FORWARDED,HTTP_CLIENT_IP,HTTP_FORWARDED 或其他任何类型。

    有关获取 IP 的快速方法,请参阅以下问题: What is the most accurate way to retrieve a user's correct IP address in PHP?

    【讨论】:

      猜你喜欢
      • 2023-04-10
      • 2011-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-21
      • 2019-01-08
      • 2013-05-09
      • 2013-04-27
      相关资源
      最近更新 更多