Jmeter:IP 欺骗不起作用

Jmeter: IP spoofing not working

为了测试 IP 欺骗,我按照以下步骤操作:

  1. 打开 CMD 并执行 nslookup www.xyz.com.asdfg-staging.net
  2. 这将给出 IP 地址,将此 IP 地址添加到主机底部 file.Here C:\Windows\System32\drivers\etc
  3. 打开Jmeter,在Http Sample中添加这个IP如下图:

如链接中所述How to setup IP spoofing in jmeter? and send requests with multiple ip address to my application using apache-JMeter(IP Spoofing) 4. 运行 测试,我只在 View Results Tree 侦听器中看到红色错误,但我没有按照步骤 #3 进行操作,然后只有绿色。

我期望的是 "spoofed IP" 即我在主机文件中添加的 IP 地址应该出现在 View Results Tree 侦听器的 Request 选项卡中。

我在这里做错了什么?上面分享的教程还要求编辑 IPv4 属性,这真的是我想要的吗?

IP 欺骗是针对客户端地址完成的。在您的屏幕截图中,您试图在 HOST header 中找到欺骗 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 外部工作,并由 OS(不是 JMeter)处理。

1.54.163.146 myhost.test.com

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

要查看实际 IP 地址,请添加 pre-processor(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+ipaddress

来衡量交易