Как написать программу, которая имитирует Fiddler с помощью tcpdump или с нуля? - PullRequest
1 голос
/ 12 марта 2011

Когда Fiddler отсутствует в Mac OS X или Ubuntu, и если мы не устанавливаем / не используем Wireshark или другие более мощные инструменты, как можно использовать tcpdump, чтобы

1) Может распечатать

GET /foo/bar HTTP/1.1
    [request content in RAW text]
    [response content in RAW text]
POST /foo/... HTTP/1.1

это можно сделать с помощью tcpdump или с помощью tcpdump в коротком сценарии оболочки или в сценарии Ruby / Python / Perl.

2) На самом деле, это может быть хорошо, если скрипт может выводить HTML, с

GET /foo/bar HTTP/1.1
POST /foo/... HTTP/1.1

на странице для отображения любым браузером, а затем при щелчке по любой из этих строк он развернется и отобразит содержимое RAW, как (1) выше. Нажмите еще раз, и он скроет детали. Пользовательский интерфейс расширения может быть выполнен с использованием jQuery или любой библиотеки JS. Сценарий может быть коротким ... возможно, менее 20 строк? Кто-нибудь знает, как это сделать для (1) или (2)?

1 Ответ

1 голос
/ 13 марта 2011

Вот два фильтра tcpdump для HTTP GET и HTTP POST:

# tcpdump filter for HTTP GET 
sudo tcpdump -s 0 -A 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420'

# tcpdump filter for HTTP POST 
sudo tcpdump -s 0 -A 'tcp dst port 80 and (tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354)'
...