IP地址欺骗/更改以便在本地计算机上进行测试

ade*_*ept 3 php ip http

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

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

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

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

我怎么设置它?

Har*_*son 6

那么,你能做的不是实际检查IP做这样的事情:

$ip = '1337.1337.1337.1337';
Run Code Online (Sandbox Code Playgroud)

代替:

$ip = $_SERVER['REMOTE_ADDR']
Run Code Online (Sandbox Code Playgroud)

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

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

//$ip = '1337.1337.1337.1337';
$ip = $_SERVER['REMOTE_ADDR']
Run Code Online (Sandbox Code Playgroud)

所以你可以轻松打开和关闭"调试开关"

编辑:

甚至使IP动态:

$ips = Array('192.168.1.220', '120.843.592.86', '256.865.463.563');
$ip = $ips[rand(1,count($ips)-1)];
Run Code Online (Sandbox Code Playgroud)

  • 更好的是,您可以在请求中包含备用HTTP标头(X-Fake-ip:10.12.23.56)并临时设置您的代码以将该标头视为真正的IP(读取$ _SERVER [HTTP_X_FAKE_IP]而不是$ _SERVER [REMOTE_ADDR]) - 这样你仍然可以在客户端交换"正在使用"的IP,而没有任何复杂的实际IP地址. (2认同)