Есть ли простой 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, когда я закончу.

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

5 ответов

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

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"

Извините, если это похоже на бесстыдный плагин, но некоторое время назад я написал небольшой http-прокси, который выводит все данные, проходящие через него. Я только разместил это на своем веб-сайте на случай, если это будет кому-то полезно. Надеюсь, это поможет: OutputProxy

С помощью полипо

polipo logLevel=0xFF

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

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

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

python -m SimpleHTTPServer <port>

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

Другие вопросы по тегам