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