我正在尝试限制流量到我的网站,以便尝试筛选大量数据的人会在一段时间后被阻止。我应该根据传入请求的IP来执行此操作。我相信我已经编写了IP限制功能但是,我对如何测试它感到困惑。我需要多次更改我的IP地址,以模拟有效的流量。我还需要测试> 20个不同的IP,因此每个IP的代理解决方案对我来说都不适用。
我正在本地计算机上测试代码(运行Ubuntu),所以如果需要进行此测试,我可以更改服务器设置(Apache)。
我在公司网络后面,因此我无法将MAC地址/ ARP设置更改为“重新分配”新IP。我希望有一些localhost IP-changing类型的东西,所以我可以利用服务器和客户端是同一台机器的事实。
此外,我试图避免在将代码推广到生产服务器之前更改代码,但这可能是最好的方法。
我该如何设置?
答案 0 :(得分:6)
嗯,你能做的不是实际检查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)];
答案 1 :(得分:1)
您可以通过在linux上运行以下命令轻松完成此操作:
ifconfig eth0:0 127.0.0.2
ifconfig eth0:1 127.0.0.3
等...(创建假的本地接口)
如果你没有监听0.0.0.0(所有接口),你可能必须配置apache来监听那些ips,然后你可以直接访问这些IP。
如果您想使用其他ips,您也可以轻松地执行此操作,但请记住在测试完成后将其删除。
这只能在本地计算机上运行到本地计算机。
答案 2 :(得分:0)
您可以通过多种方式对此进行测试。最简单的方法是创建一个ARP条目列表,其中您模拟的IP地址指向服务器的MAC地址。然后,您可以编写一个简单的应用程序,将src地址设置为每个模拟的IP地址,连接并发送您想要的任何HTTP请求。服务器应该回复得很好。
答案 3 :(得分:0)
我不确定这是否是您正在寻找的,但我不得不欺骗我的MAC地址,以便我可以获得一个新的IP来绕过我大学的下载配额。更改MAC会产生新的IP。标准的ubuntu存储库中有一个名为“macchanger”的程序,只需使用正确的选项(随机的“-r”)运行,然后指定设备。像这样。
sudo macchanger -r eth0
执行此操作时必须禁用网络连接。您可以通过右键单击网络图标并取消选中“启用网络”框来执行此操作。
答案 4 :(得分:0)
您希望考虑在防火墙级别(如果不是公司边界防火墙而不是主机上的SW防火墙)执行此操作。在许多情况下,如果您只是在应用程序级别限制它们,那么滥用主机仍然可以取消或影响您网站的性能。他们仍在使用套接字和Web服务器工作线程,即使您最终拒绝它们。在IP检查之前,您甚至可能会有一些代码有一些费用。它实际上取决于应用程序的轻量级,但有一点可以肯定,防火墙,无论是硬件还是sw,都可以比应用程序更有效地阻止不守规矩的客户端。
答案 5 :(得分:0)
这个答案对于这个应用程序可能有点过分,但我喜欢使用tcpdump / libpcap,winpcap和原始套接字来生成流量。您不仅可以很好地控制进出应用程序的音量,还可以了解很多关于防火墙/流量过滤器设置可以为您做什么以及阻止了哪些类型的流量您没想到的(或者你不想被阻止的。)
答案 6 :(得分:0)
使用随机函数并将限制设置为rand(0,255)并将字符串连接到IP格式。什么时候你打电话给你将获得新的IP地址