Простой http-монитор трафика (захват процесса)
Я знаю, такие вопросы задавались много раньше.
У меня большая проблема с использованием Wireshark по следующим причинам:
- Он не может отследить, какой процесс отправил / получил пакет
- Он не только показывает HTTP-трафик
- Для трафика HTTP это дает мне раздражающие представления дерева
- Я не могу начать глобальный поиск по содержимому всех пакетов
(последний пункт не так важен)
То, что я ищу, - это простой монитор трафика HTTP, который позволяет мне захватывать трафик HTTP одного процесса, отображая необработанные запросы, например:
POST /index.html HTTP/1.1
Host: www.google.com
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0
param1=testabc&qwe=123
Отметки времени и IP-адреса также были бы хороши.
Я надеюсь, что вы можете помочь мне. И чтобы вы знали: я потратил много времени на поиск такого монитора в Google, но не смог найти хороший.
Я на винде.
2 ответа
Вы можете использовать Fiddler; он захватывает трафик HTTP и имеет фильтры по процессам.
Он также имеет приятный дисплей и подходит для Windows.
В Windows вы должны иметь возможность использовать Microsoft Network Monitor для отслеживания одного процесса. Вы хотите использовать ProcessName
или же ProcessID
фильтры, чтобы выбрать только интересующий вас процесс.
Если NetMon не возвращает результаты в удобном для вас формате, вы можете также попробовать экспериментальную версию WireShark, в которой добавлена поддержка фильтрации pid в окнах.
Загрузить: [Wireshark-dev] [PATCH] Фильтр по имени локального процесса
В Linux у вас должна быть возможность использовать strace для мониторинга одного процесса, но он, вероятно, будет отформатирован не так, как вы хотите. Чтобы проследить существующий процесс:
strace -p $PID -f -e trace=network -s $MAXLEN
Чтобы начать процесс с трассировкой:
strace -f -e trace=network -s $MAXLEN PATH/TO/PROCESS ARGUMENTS
Для дальнейшей информации смотрите: man strace
Ссылки: Фильтрация разговоров и AskUbuntu захватывают один процесс