需求背景:在测试系统的过程中,系统中的调度控件会根据请求发起的IP来计算出就近、资源较好、较闲置等条件的服务器供客户使用。往往在测试过程中忽略了调度控件的测试,本文主要关注调度控件是否能正常工作进行请求发起中IP信息的伪造实现。
最后在网络上获取到帮助:可以在http请求头里,追加一个头信息(名称:x-forwarded-for),这个方法在Gulu中的用法如下(直接上代码):
import com.taobao.gulu.http.PostRequest;
import com.taobao.gulu.http.Response;
import com.taobao.gulu.http.StringBodyEntity;
public class XuIPTest {
public static void main(String[] args) throws Exception {
String str = "{\"a\":\"a\"}";
StringBodyEntity body;
body = new StringBodyEntity(str);
PostRequest request = new PostRequest();
String header = "x-forwarded-for:1.1.1.1";//伪造IP放入请求头
Response response = request.doRequest("http://IP:8933",header, body);//构造header发起Post请求
System.out.println("结果是:"+response.getResponseBodyAsString());
}
}
但是不是对所有的系统都适用,有的系统不认这个请求头,所有抽空也对Loadrunner中的IP欺骗模块研究了下,没有搜索到它的实现原理,大多的文章都是写压测过程中怎么配置IP欺骗。所有本文告一段落,有其他方法的欢迎留言,我会在第一时间回复。
网友评论