2017-02-08 10 views
1

Чтобы проверить IP подмены Я выполняю следующие шаги:Jmeter: IP-спуфинг не работает

  1. Открыть CMD и сделать Nslookup www.xyz.com.asdfg-staging.net
  2. Это даст IP-адрес добавьте этот IP-адрес в нижней части хостов file.Here C:\Windows\System32\drivers\etc
  3. Открыть Jmeter и добавьте этот IP в Http образца, как показано ниже:

Как instrcuted в ссылках 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-адрес, который я добавил в файле хоста, должен присутствовать на вкладке RequestView Results Tree прослушивателя.

Что я здесь делаю неправильно? В учебниках, вышедших выше, также предлагается отредактировать свойства IPv4, действительно ли это необходимо для достижения того, что я ищу?

+0

попробуйте шаги здесь https://www.blazemeter.com/blog/using-ip-spoofing-simulate-requests-different-ip-addresses-jmeter. Да, вы должны добавить IP-адреса в свойства IPV4 (вкладка Adavanced -> ADD), тогда только вы можете указать эти добавленные IP-адреса в IP Spoofing. –

+0

Если я поместил IP-адрес (в IPv4), мой Интернет на этом компьютере остановится. Нет? Зачем? – paul

+0

Мы не храним случайный IP-адрес в конфигурации.IP должен представлять одну и ту же подсеть (например, 192.168 или 10.10). Обычно маршрутизатор будет выделять IP-адрес для вашего компьютера (используя DHCP). В нашей конфигурации мы выделяем IP-адреса, доступные с маршрутизатором вручную. –

ответ

2

IP Spoofing выполняется для адресов сторонних клиентов. На скриншоте вы пытаетесь найти значение spoofed IP в заголовке HOST, который обычно указывает на фактическое имя хоста сервера, а не на 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. В этом случае установка файла C: \ Windows \ System32 \ drivers \ etc \ hosts с назначенным IP-адресом для вашего сервера (а не клиента) будет работать вне JMeter и обрабатывается ОС (не JMeter).

1.54.163.146 myhost.test.com 

На уровне операционной системы, операционная система будет заботиться о отправке запросов на имя для myhost.test.com к IP, который вы указали выше в C: \ Windows \ System32 \ Drivers \ Etc \ хост файл

чтобы увидеть фактический 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} в свое имя sampl. Он будет измерять транзакцию на основе samplername + ipaddress

+0

Имеют смысл для меня. Но есть ли способ, я вижу, что в Jmeter тоже страницы обрабатываются с IP-адреса, предоставленного в файле hosts? – paul

+1

Вы можете добавить предварительный процессор с приведенным ниже кодом, который будет печатать фактический IP-адрес, как то, как JVM разрешает его, что в свою очередь используется JMeter import java.net.InetAddress; InetAddress address = InetAddress.getByName ("myhost.test.com"); log.info ("Address =" + address.getHostAddress()); – Selva

+0

где он будет печатать, в журналах? Я работаю в режиме графического интерфейса, где я могу видеть журналы? Я нажимаю так много URL-адресов в CSV-файле, я хочу, чтобы журналы для каждого URL-адреса в CSV-файле. – paul