3

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

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

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

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

我该如何设置?

4

7 回答 7

7

好吧,您可以做的不是实际检查 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)];
于 2009-05-26T22:48:08.293 回答
1

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

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

如果您没有在 0.0.0.0(所有接口)上侦听,您可能必须配置 apache 以侦听这些 IP,然后您可以直接访问这些 IP。

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

这只能从您的本地机器到您的本地机器。

于 2009-05-27T08:22:57.057 回答
0

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

于 2009-05-26T22:31:00.137 回答
0

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

于 2009-05-26T23:48:22.040 回答
0

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

于 2009-05-27T00:23:24.777 回答
0

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

sudo macchanger -r eth0

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

于 2009-05-26T22:32:34.203 回答
0

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

于 2016-04-12T07:07:17.950 回答