Jmeter:IP欺骗无法正常工作

时间:2017-02-08 11:48:26

标签: jmeter ip spoofing

测试IP Spoofing我遵循以下步骤:

  1. 打开CMD并执行nslookup www.xyz.com.asdfg-staging.net
  2. 这将提供IP地址,在主机文件的底部添加此IP地址。这里C:\Windows\System32\drivers\etc
  3. 打开Jmeter并在Http Sample中添加此IP,如下所示:
  4. 在链接How to setup IP spoofing in jmeter?send requests with multiple ip address to my application using apache-JMeter(IP Spoofing)中被描述为  4.运行测试,我只看到View Results Tree监听器中的红色错误,但我没有遵循步骤#3,那么只有绿色。

    我期待的是“欺骗性IP”,即我在主机文件中添加的IP地址应该出现在Request听众的View Results Tree标签中。

    我在这里做错了什么?上面分享的教程也要求编辑IPv4属性,这对于实现我想要的东西真的是强制性的吗?

1 个答案:

答案 0 :(得分:2)

为客户端地址执行IP欺骗。在屏幕截图中,您试图在HOST标头中找到欺骗IP的值,该标头通常指向实际的服务器主机名而不是IP。

方案1,在IPv4字段中未分配值,并对myhost.test.com进行了测试

Request Headers:
Connection: close
Content-Type: application/json
Content-Length: 162
Host: myhost.test.com
User-Agent: Apache-HttpClient/4.5.2 (Java/1.8.0_111)

方案2,源地址字段设置为10.1.153.90

Request Headers:
Connection: close
Content-Type: application/json
Content-Length: 162
Host: myhost.test.com
User-Agent: Apache-HttpClient/4.5.2 (Java/1.8.0_111)
**X-LocalAddress: /10.1.153.90**

对我而言,您似乎试图将服务器IP欺骗为服务提供商提供的特定IP,这样您就可以像Akamai暂存环境一样。在这种情况下,使用为服务器(而不是客户端)分配的IP设置C:\ Windows \ System32 \ drivers \ etc \ hosts文件将在JMeter外部工作,并由操作系统(而非JMeter)处理。

1.54.163.146 myhost.test.com

在操作系统级别,您的操作系统将负责将针对myhost.test.com发送的请求发送到您在上面的C:\ Windows \ System32 \ drivers \ etc \ hosts文件中提供的IP

要查看实际的IP地址,请添加预处理器(beanshell或同等产品)并添加以下行

import java.net.InetAddress;

InetAddress address = InetAddress.getByName("myhost.test.com"); 
log.info("Address=" + address.getHostAddress()); 

如果您想测量此IP地址的请求时间,可以将其放入变量并将其添加到您的采样器名称中

import java.net.InetAddress;

InetAddress address = InetAddress.getByName("myhost.test.com"); 
log.info("Address=" + address.getHostAddress()); 
vars.put("addressused",  address.getHostAddress()); 

然后将$ {addressused}附加到您的samplername。它将根据samplername + ipaddress

测量事务