【问题标题】:Jmeter: IP spoofing not workingJmeter:IP 欺骗不起作用
【发布时间】:2017-02-08 11:48:26
【问题描述】:

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

  1. 打开 CMD 并进行 nslookup www.xyz.com.asdfg-staging.net
  2. 这将给出IP地址,将此IP地址添加到hosts文件的底部。这里C:\Windows\System32\drivers\etc
  3. 打开Jmeter,在Http Sample中添加这个IP,如下图:

如链接 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 地址应该出现在 View Results Tree 侦听器的 Request 选项卡中。

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

【问题讨论】:

  • blazemeter.com/blog/… 开始尝试这些步骤。是的,您必须将 IP 地址添加到 IPV4 属性(高级选项卡 -> 添加按钮),然后只有您可以在 IP Spoofing 中指定这些添加的 IP
  • 如果我将 IP 地址(在 IPv4 中)放在那里,那台机器上的互联网将停止。不?为什么?
  • 我们不会在配置中保留任何随机 IP 地址。 IP 必须代表相同的子网(如 192.168 或 10.10)。通常,路由器会为您的机器分配一个 IP 地址(使用 DHCP)。在我们的配置中,我们手动分配路由器可用的 IP。
  • 能否详细回答一下?
  • 按照给定链接中的步骤操作后,您面临的问题是什么?为了解释答案,在给定链接中已经涵盖所有内容的情况下需要付出很多努力。请告诉我们您面临的确切问题?

标签: jmeter ip spoofing


【解决方案1】:

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+ipaddress来衡量交易

【讨论】:

  • 对我有意义。但是有没有办法,我也可以在 Jmeter 中看到页面是从 hosts 文件中提供的 IP 获取的?
  • 您可以使用以下代码添加一个预处理器,它将打印实际 IP,例如 JVM 如何解析它,而 JMeter 又使用它来导入 java.net.InetAddress; InetAddress 地址 = InetAddress.getByName("myhost.test.com"); log.info("Address=" + address.getHostAddress());
  • 它将在哪里打印,在日志中?我在 GUI 模式下运行,在那里我可以看到日志?我在 CSV 文件中访问了这么多 URL,我想要 CSV 文件中每个 URL 的日志。
  • 我已经编辑了我的帖子,将其包含在采样器名称中,以便您可以通过返回的 IP 来衡量它
猜你喜欢
  • 2019-04-14
  • 2013-05-03
  • 2017-10-21
  • 1970-01-01
  • 2011-06-27
  • 1970-01-01
  • 1970-01-01
  • 2023-03-09
  • 2019-06-05
相关资源
最近更新 更多