物联网

时间:2011-08-16 20:30:07

标签: visual-c++

我在C ++中有一个嗅探器,我在那里获得源IP,目标IP,控制位和序列号。我也获得了IP标头,然后是TCP信息。我想获取数据包的内容类型。我需要重新组装数据包吗?或者我可以使用http请求并响应以获取数据包的内容类型。感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:0)

没有“内容类型”。 TCP将仅为TCP上面的层提供八位字节流来解释。如果您通过TCP嗅探HTTP,则必须汇编数据包,并自行解析HTTP。

您是否考虑过使用Wireshark

<强>更新

通过将TCP数据包组合到八位字节流中,您基本上将TCP数据包的有效负载附加到一个大字节数组中。请确保注意TCP数据包的序列号,因为数据包可能无法到达

解析HTTP内容要复杂得多。第一个标题始终为ASCII。它们指定内容类型和内容长度。内容类型部分很棘手。东西可以用各种编码技术编码,它们可以用另一种编码技术(zip流,SSL等)封装。

看看Wireshark和WinPcap是如何做到的,这可能是一个好主意。我不确定WinPcap是否包含HTTP的过滤器和解码器(基本上是为您提供HTTP的内容)。无论如何,可能值得查看代码。