确定 HTTP 数据包
-
27-09-2019 - |
题
问候,
如何使用 Sharppcap 从捕获的数据包中确定数据包是否是 http 数据包?
我们能否确定 frpm TCP 数据包是否是 HTTP?
解决方案
根据 rfc2616 - 超文本传输协议 - HTTP/1.1:
HTTP 消息的版本由消息第一行中的 HTTP-Version 字段指示
因此,您可以检查数据包并扫描消息标头中的 HTTP 版本文本和/或 HTTP 协议的其他已知字段。虽然如果一条消息被分成多个数据包,此方法可能不是 100% 准确,但它可能足够好,至少作为第一次切割。
其他提示
我sharppcap/packet.net
的作者/维护者。
我有重组执行tcp
是在在复杂的网络监控应用程序,以确定和遵循http
使用几类和http sessions
解析。这些都是充分单元测试和很好的注释。
它们可用于在二进制或源电平牌或者
编辑:为什么选这个了吗?花了数百小时来开发代码和测试,它是在溶液中的下降已重用。这当然是值得考虑之前重新实现相同的功能。
这听起来像你正在寻找一个TCP片段。如果从消息的开头来了,它会在第一行的HTTP版本,但如果你只是随便拉包断网,并希望能够告诉他们你的HTTP运气就出局了 - 有没有在TCP片断这表明什么是他们。要知道,唯一的办法是看整个谈话。
不隶属于 StackOverflow