作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在使用网络服务,我需要获取所有 HTTP 请求和响应的转储,以便我可以调试设备之间的互操作性。
我有一台带有 3 个桥接网卡的小型电脑,因此它充当集线器,我可以利用流量。我正在寻找一种轻松转储 HTTP 流量的方法,以便我可以分析两个设备交换的 SOAP 消息。
因为我更喜欢用 python 实现它,所以我尝试使用 HTTP extension 的 scapy , 但它似乎不起作用,因为我看到请求被解析了三次(我想知道这是否是由于使用了网桥),但我看不到响应。
还有其他方法可以实现这样的工具吗?我更喜欢 python,但它不是强制性的。
又是一个小问题
我添加了一个子问题:通过使用我在上一个问题中链接的 HTTP 解释器,我发现有时我收到的数据包仅被识别为 HTTP 而不是 HTTPRequest 或 HTTPResponse。这样的数据包看起来是压缩的,我认为它们与响应主体不适合单个数据包这一事实有关。 scapy 有办法将这些数据包合并在一起吗?我需要一种方法来获取消息的正文。同样,不仅在 python 中,而且不仅在 scapy 中。
最佳答案
我最终通过在管道中使用 tshark 并使用 python 脚本解析其输出解决了我的问题。大多数解码事件由以下命令执行
tshark -l -f "tcp port 80" -R "http.request or http.response " -i br0 -V
输出解码后的 HTTP 数据包。我的脚本会执行所有必要的操作。
关于python - 如何转储http流量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17616773/
我是一名优秀的程序员,十分优秀!