是否有一个输出到 STDOUT 的简单命令行 HTTP 代理?

是否有一个输出到 STDOUT 的简单命令行 HTTP 代理?

是否有一个命令行 HTTP 代理可以输出到 STDOUT,以便我可以将其与 Unix 管道一起使用?

我想做这样的事:

  1. 在命令行启动代理:
    $ proxy -p 8888 | grep "Text I'm interested in" > ~/my_log.txt
  2. 配置我的浏览器以使用端口 8888 上的 HTTP 代理。
  3. 浏览互联网。浏览时,HTML 被 grep 并保存到 my_log.txt
  4. CTRL-C当我完成的时候。

更新:我之前没有想过这个问题,但是解决方案需要正确处理 gzip/deflated 的内容。

答案1

您可以跳过代理,只使用带有 -A 选项和过滤器的 tcpdump 吗?

# 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"

答案2

你可以这样做ngrep

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

答案3

使用 polipo

polipo logLevel=0xFF

执行polipo -v | grep logLevel可以看到:

logLevel 整数 0x7 日志级别(最大 = 0xFF)。

答案4

它不能完全满足您的开箱即用需求,但我认为修改后的 SimpleHTTPServer 版本可以满足您的需求。

python -m SimpleHTTPServer <port>

它目前允许您在 PWD 之外运行 HTTP 服务器,并将访问日志返回到 STOUT。

相关内容