http - 编写 http 嗅探器(或任何其他应用程序级嗅探器)

标签 http pcap packet-sniffers sniffer

我正在尝试理解 PCAP 库。 我能够应用过滤器并在端口 80 处获取 TCP 有效负载。但是接下来该怎么办?如何读取 HTTP 数据 - 假设我想知道 http header 中的“用户代理”字段值。我应该如何继续? 我搜索了该网站(也用谷歌搜索了很多),并且可以在这里找到相关的线程: writing a http sniffer 。但这对我没有任何帮助......

谢谢!!

最佳答案

首先,您应该知道 PCAP 为您提供数据包,并且不会重建 TCP 流,因此如果不先重建数据,您将无法读取完整的 HTTP TCP 流。

假设所有数据都在一个数据包中,请尝试查看我的答案 a similar question 。您所需要做的只是解析 HTTP header 并获取用户代理。

如果您不局限于 C,并且可以使用 Windows,则可以编写 .NET 应用程序并使用 Pcap.Net完美解析以太网、IPv4和TCP。

关于http - 编写 http 嗅探器(或任何其他应用程序级嗅探器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2905430/

相关文章:

java - org.apache.http.impl.execchain.RequestAbortedException : Request aborted

java - 将负载均衡器绕过不同 Web 应用程序的特定服务器

c++ - 如何使用 C/C++ 提取 pcap 文件的 TCP header 中的选项字段

port - 如何确定 Wireshark 中的哪个数据包与我通过 Postman 发送的数据包相对应?

html - 可以在不重定向页面和不使用 javascript 的情况下发出请求吗?

java - 在http get params中传递 "long"值

c++ - 代码审查的好地方在哪里?

c++ - 无法在 Visual Studio 中编译 PCAP 程序

c++ - 'pcap_loop' 没有记录数据包,甚至没有运行

packet-sniffers - 使用 wlan0 和 channel hopping mon0 作为监视器连接到互联网