Назад | Перейти на главную страницу

Есть ли простой HTTP-прокси командной строки, который выводит на STDOUT?

Есть ли прокси-сервер HTTP командной строки, который выводит в STDOUT, чтобы я мог использовать его с каналами Unix?

Я хочу сделать что-то вроде этого:

  1. Запустите прокси из командной строки:
    $ proxy -p 8888 | grep "Text I'm interested in" > ~/my_log.txt
  2. Настроить мой браузер на использование прокси-сервера HTTP на порту 8888.
  3. Просмотрите Интернет. Когда я просматриваю страницы, HTML-код сохраняется в my_log.txt.
  4. CTRL-C когда я уже закончил.

ОБНОВЛЕНИЕ: я не думал об этом раньше, но решение должно правильно обрабатывать сжатый / сжатый контент.

Вы можете сделать это с помощью нгреп.

ngrep -q -W byline "Text I'm interested in" port 80 > ~/my_log.txt

Можете ли вы пропустить прокси и просто использовать tcpdump с параметром -A и фильтром?

# capture everything destined for port 80
tcpdump -qni eth0 -s 0 -A port 80

# capture everything destined for port 80 on 192.168.32.1
tcpdump -qni eth0 -s 0 -A port 80 and host 192.168.32.1

# capture everything destined for port 80 and display only the interesting bit.
tcpdump -qni eth0 -s 0 -A port 80 | grep "Text I'm interested in"

используя полипо

polipo logLevel=0xFF

выполнять polipo -v | grep logLevel можно увидеть:

logLevel integer 0x7 Уровень ведения журнала (макс. = 0xFF).

Он не делает именно то, что вы хотите, из коробки, но я бы сказал, что модифицированная версия SimpleHTTPServer сделает свое дело.

python -m SimpleHTTPServer <port>

В настоящее время он позволяет запускать HTTP-сервер из вашего PWD и возвращает журнал доступа в STOUT.