如果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/