【问题标题】:IP address spoofing/changing for testing on local machineIP地址欺骗/更改以在本地机器上进行测试
【发布时间】:2010-10-29 02:56:59
【问题描述】:

我正在尝试限制访问我的网站的流量,以便在一段时间后阻止尝试截取大量数据的人。我应该根据传入请求的 IP 来执行此操作。我相信我已经编写了 IP 限制功能,但是我对如何测试它感到困惑。我需要能够多次更改我的 IP 地址,以模拟有效流量。我还需要测试超过 20 个不同的 IP,因此每个 IP 的代理解决方案都不适合我。

我正在本地机器(运行 Ubuntu)上测试代码,因此如果需要,我可以更改我的服务器设置 (Apache)。

我位于公司网络后面,因此无法将 MAC 地址/ARP 设置更改为“重新分配”新 IP。我希望有某种 localhost IP 更改类型的东西,所以我可以利用服务器和客户端是同一台机器的事实。

另外,我试图避免在将代码推广到生产服务器之前更改代码,但这可能是最好的方法。

我该如何设置?

【问题讨论】:

    标签: php http ip


    【解决方案1】:

    好吧,您可以做的不是实际检查 IP,而是执行以下操作:

    $ip = '1337.1337.1337.1337';
    

    代替:

    $ip = $_SERVER['REMOTE_ADDR']
    

    然后继续做你的IP检查代码。

    所以当你完成后,你可以让你的 $ip 变量代码看起来像这样:

    //$ip = '1337.1337.1337.1337';
    $ip = $_SERVER['REMOTE_ADDR']
    

    这样你就可以轻松打开和关闭“调试开关”

    编辑:

    甚至使 IP 动态化:

    $ips = Array('192.168.1.220', '120.843.592.86', '256.865.463.563');
    $ip = $ips[rand(1,count($ips)-1)];
    

    【讨论】:

    • 更好的是,您可以在请求中包含一个备用 HTTP 标头 (X-Fake-ip: 10.12.23.56) 并临时设置您的代码以将该标头视为真实 IP (读取 $_SERVER[HTTP_X_FAKE_IP] 而不是 $_SERVER[REMOTE_ADDR])——这样您仍然可以在客户端交换“正在使用”的 IP,而无需对实际 IP 地址进行任何复杂的处理。
    • 您可以设置 $_SERVER['REMOTE_ADDR'] 的值。这样做的好处是它适用于整个脚本,您可以通过注释掉/删除一行来删除它。
    【解决方案2】:

    您可以通过在 linux 上运行以下命令轻松做到这一点:

    ifconfig eth0:0 127.0.0.2
    ifconfig eth0:1 127.0.0.3
    等等...(创建虚假的本地接口)

    如果您不监听 0.0.0.0(所有接口),您可能需要配置 apache 来监听这些 IP,然后您可以直接访问这些 IP。

    如果您想使用其他 ip,您也可以轻松做到这一点,但请记住在测试完成后将其删除。

    这仅适用于您的本地机器,到您的本地机器。

    【讨论】:

    • 不,您不必配置 Apache,因为 OP 想要更改客户端的 IP 地址。所以这个技巧必须在客户端机器上完成(然后你需要一个能够选择 IP 地址的 HTTP 客户端)。
    【解决方案3】:

    您可以通过多种方式对此进行测试。 imo 最简单的方法是创建一个 ARP 条目列表,其中您模拟的 IP 地址指向服务器的 MAC 地址。然后,您可以编写一个简单的应用程序,将 src 地址设置为每个模拟 IP 地址,连接并发送您想要的任何 HTTP 请求。服务器应该回复得很好。

    【讨论】:

      【解决方案4】:

      我不确定这是否是您要查找的内容,但我不得不伪造我的 MAC 地址,以便获得一个新 IP 以绕过我大学的下载配额。更改 MAC 会产生新的 IP。标准 ubuntu 存储库中有一个名为“macchanger”的程序,只需使用正确的选项(“-r”表示随机)运行它,然后指定设备。像这样。

      sudo macchanger -r eth0
      

      执行此操作时必须禁用网络。您可以通过右键单击网络图标并取消选中“启用网络”框来执行此操作。

      【讨论】:

        【解决方案5】:

        您想考虑在防火墙级别执行此操作(如果不是公司边界防火墙而不是主机上的 SW 防火墙)。在许多情况下,如果您仅在应用程序级别限制滥用主机,它们仍然可以关闭或影响您网站的性能。即使您最终拒绝了它们,它们仍在使用套接字和 Web 服务器工作线程。您甚至可能有一些代码在 IP 检查之前需要花费一些费用。这实际上完全取决于您的应用程序的轻量级,但可以肯定的是,防火墙,无论是硬件还是软件,都可以比您的应用程序更有效地阻止不守规矩的客户端。

        【讨论】:

          【解决方案6】:

          这个答案对于这个应用程序来说可能是多余的,但我喜欢使用tcpdump / libpcap、winpcap 和原始套接字来生成流量。您不仅可以很好地控制进出应用程序的流量,还可以了解很多关于您可以期待防火墙/流量过滤器设置为您做什么,以及哪些类型的流量被阻止是您没有预料到的(或你不想被阻止)。

          【讨论】:

          • 不错,功能非常强大,但确实非常矫枉过正和复杂。
          【解决方案7】:

          使用随机函数并将限制设置为 rand(0,255) 并将字符串连接到 IP 格式。当你打电话时,你会得到新的IP地址

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-02-20
            • 1970-01-01
            • 2013-04-22
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-02-22
            • 2012-03-24
            相关资源
            最近更新 更多