如何使用 tcpdump 或从头开始编写一个模仿 Fiddler 的程序?

发布于 2024-10-22 04:48:41 字数 592 浏览 1 评论 0原文

当 Fiddler 不在 Mac OS X 或 Ubuntu 上时,如果我们不安装/使用 Wireshark 或任何其他更重型的工具,有什么方法可以使用 tcpdump 以便

1) 它可以打印 。

GET /foo/bar HTTP/1.1
    [request content in RAW text]
    [response content in RAW text]
POST /foo/... HTTP/1.1

这应该可以通过 tcpdump 或在简短的 shell 脚本或 Ruby / Python / Perl 脚本中使用 tcpdump 来完成

2) 实际上,如果脚本可以输出 HTML,

GET /foo/bar HTTP/1.1
POST /foo/... HTTP/1.1

在页面上供任何浏览器显示,然后当单击其中任何一行时,它将展开以显示 RAW 内容,就像上面的 (1) 那样。再次单击,它将隐藏详细信息。扩展 UI 可以使用 jQuery 或任何 JS 库来完成。剧本可能很短……可能不到 20 行?有谁知道如何为(1)或(2)做到这一点?

When Fiddler is not on Mac OS X or Ubuntu, and if we don't install/use Wireshark or any other more heavy duty tools, what is a way to use tcpdump so that

1) It can print out

GET /foo/bar HTTP/1.1
    [request content in RAW text]
    [response content in RAW text]
POST /foo/... HTTP/1.1

this should be able to be done by tcpdump or by using tcpdump in a short shell script or Ruby / Python / Perl script.

2) Actually, it can be neat if a script can output HTML, with

GET /foo/bar HTTP/1.1
POST /foo/... HTTP/1.1

on the page, for any browser to display, and then when clicked on any of those lines, it will expand to show the RAW content like (1) above does. Click again and it will hide the details. The expansion UI can be done using jQuery or any JS library. The script may be short... possibly less than 20 lines? Does anybody know how to do it either for (1) or (2)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

把昨日还给我 2024-10-29 04:48:41

这里有两个用于 HTTP GET 和 HTTP 的 tcpdump 过滤器。 HTTP 发布:

# tcpdump filter for HTTP GET 
sudo tcpdump -s 0 -A 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420'

# tcpdump filter for HTTP POST 
sudo tcpdump -s 0 -A 'tcp dst port 80 and (tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354)'

Here are two tcpdump filters for HTTP GET & HTTP POST:

# tcpdump filter for HTTP GET 
sudo tcpdump -s 0 -A 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420'

# tcpdump filter for HTTP POST 
sudo tcpdump -s 0 -A 'tcp dst port 80 and (tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354)'
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文