问候,
如果数据包是http数据包,如何使用sharpcap从捕获的数据包中确定?
如果数据包是 HTTP,我们可以确定 frpm TCP 数据包吗?
问候,
如果数据包是http数据包,如何使用sharpcap从捕获的数据包中确定?
如果数据包是 HTTP,我们可以确定 frpm TCP 数据包吗?
根据rfc2616 - 超文本传输协议 - HTTP/1.1:
HTTP 消息的版本由消息第一行中的 HTTP-Version 字段指示
因此,您可以检查数据包并扫描消息头中的 HTTP 版本文本和/或 HTTP 协议的其他已知字段。虽然如果一条消息被分成多个数据包,这种方法可能不会 100% 准确,但它可能已经足够好了,至少作为第一次切割。
我是sharppcap/packet.net
.
我有一些执行tcp
重组和http
解析的类,这些类在复杂的网络监控应用程序中使用,以识别和跟踪http sessions
. 这些都是完全单元测试和很好的评论。
它们可用于二进制或源代码级别的许可。
编辑:为什么要投反对票?开发代码和测试花费了数百个小时,这是一个已被重用的解决方案。在重新实现相同的功能之前,这当然值得考虑。
听起来您正在查看单个 TCP 片段。如果它来自消息的开头,它将在第一行有一个 HTTP 版本,但如果你只是从网络中拉出随机数据包并希望能够告诉它们是 HTTP,那么你就不走运了- TCP 片段中没有任何内容表明其中的内容。唯一知道的方法是查看整个对话。