0

问候,

如果数据包是http数据包,如何使用sharpcap从捕获的数据包中确定?

如果数据包是 HTTP,我们可以确定 frpm TCP 数据包吗?

4

3 回答 3

3

根据rfc2616 - 超文本传输​​协议 - HTTP/1.1

HTTP 消息的版本由消息第一行中的 HTTP-Version 字段指示

因此,您可以检查数据包并扫描消息头中的 HTTP 版本文本和/或 HTTP 协议的其他已知字段。虽然如果一条消息被分成多个数据包,这种方法可能不会 100% 准确,但它可能已经足够好了,至少作为第一次切割。

于 2010-04-16T02:57:17.743 回答
2

我是sharppcap/packet.net.

我有一些执行tcp重组和http解析的类,这些类在复杂的网络监控应用程序中使用,以识别和跟踪http sessions. 这些都是完全单元测试和很好的评论。

它们可用于二进制或源代码级别的许可。

编辑:为什么要投反对票?开发代码和测试花费了数百个小时,这是一个已被重用的解决方案。在重新实现相同的功能之前,这当然值得考虑。

于 2010-04-16T16:13:38.913 回答
1

听起来您正在查看单个 TCP 片段。如果它来自消息的开头,它将在第一行有一个 HTTP 版本,但如果你只是从网络中拉出随机数据包并希望能够告诉它们是 HTTP,那么你就不走运了- TCP 片段中没有任何内容表明其中的内容。唯一知道的方法是查看整个对话。

于 2010-04-16T05:46:58.683 回答