如果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)怎么做吗?

最佳答案

这是用于HTTP GET和HTTP POST的两个tcpdump筛选器:

# 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)'

关于python - 如何编写使用tcpdump或从头开始模仿Fiddler的程序?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5285016/

10-12 06:24