Есть ли прокси-сервер HTTP командной строки, который выводит в STDOUT, чтобы я мог использовать его с каналами Unix?
Я хочу сделать что-то вроде этого:
$ proxy -p 8888 | grep "Text I'm interested in" > ~/my_log.txt
ОБНОВЛЕНИЕ: я не думал об этом раньше, но решение должно правильно обрабатывать сжатый / сжатый контент.
Вы можете сделать это с помощью нгреп.
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.