2015-04-29 3 views
0

Я пытаюсь захватить http-трафик с помощью pcap4j с симулятора Android-эмулятора/ios на сервер, который размещен на той же машине. Машина может запускать либо linux/windows, либо osx.захватить трафик с эмулятора на сервер на том же компьютере

Я попытался захватить пакеты с проводов сначала для тестирования, но он не поймал. Я думаю, это связано с тем, что эмулятор использует интерфейс loopback, чтобы разговаривать с сервером, так как они работают на одной машине. Есть ли способ захватить трафик, кроме того, что эмуляторы используют своего рода «человек в середине http-прокси»?

Спасибо.

ответ

1

Я попытался захватить пакеты с проводов сначала для тестирования, но он не поймал. Я думаю, это связано с тем, что эмулятор использует интерфейс loopback, чтобы разговаривать с сервером, так как они работают на одном компьютере.

Да, если вы не захватили интерфейс loopback, вы не увидите трафик. В Linux этот интерфейс называется «lo»; на OS X (и большинство других UN * Xes), это называется «lo0». К сожалению, вам не повезло.

0

iOS Simulator использует те же сетевые интерфейсы, что и хост. Нет отдельного интерфейса, и Wireshark увидит трафик из iOS Simulator так же, как он увидит трафик с любого другого приложения Mac OS.

+0

Я не думаю, что это отвечает на мой вопрос. никакой трафик не будет отправлен в ЛВС, поскольку они находятся на одном компьютере, и, если я не что-то делаю с интерфейсом loopback, я не могу поймать какой-либо трафик. – barisdad

+0

Просто потому, что сервер, с которым вы разговариваете, находится на одном компьютере, не обязательно следует, что вы используете интерфейс loopback для подключения. Я хочу сказать, что в этом случае для iOS Simulator нет ничего особенного. Мы не делаем никакой магии для сетевых интерфейсов в симуляторе. С точки зрения Wireshark ваше приложение, работающее в симуляторе, похоже на любой другой процесс в системе. –

+0

Я не понял твое первое предложение. Есть ли кросс-платформенный способ заставить его перейти на провод, а не использовать интерфейс loopback? Я знаю, что они похожи на другие процессы, поэтому их политика использования loopback похожа на любой другой процесс. Например, это означает, что когда я запускаю эмулятор android в Windows, он будет использовать интерфейс loopback по умолчанию, и насколько я знаю, нет способа переопределить это в Windows. Однако есть определенные вещи, которые вы можете сделать в эмуляторе Android, например, вариант запуска httpproxy, о котором я упоминал ранее. – barisdad