0

在使用 winpcap 和 c++ 编程时,是否知道某个 url/数据包的来源(网络浏览器)?

4

2 回答 2

1

URL 只是一个地址字符串,与任何特定浏览器本身无关。然而,数据包是发送的东西,通常由应用程序发送。在 HTTP 流量的情况下,我们可以安全地假设 TCP。TCP 数据包总是有 4 个寻址字段:原始 IP、原始端口、目标 IP 和目标端口。端口被唯一地分配给单个应用程序。在这种情况下,源端口将分配给 Web 浏览器,而目标端口将分配给 Web 服务器。

请注意,目标端口可能是 80,静态分配给 Web 服务器,但源端口是随机分配的,以后可以重新分配。因此,您需要立即查找它。

于 2010-02-08T09:51:30.437 回答
0

捕获包含 HTTP 有效负载的 tcp 数据包后,您需要将 HTTP 标头隔离为字符串,以便您可以使用它。在 HTTP 负载中,您将找到 User-Agent 关键字(您需要搜索 httpHeader 字符串)并读取相关值。我认为您可以通过执行以下操作来隔离 HTTP 标头

char* httpHeader = pkt_hdr + 14 + sizeof(TCP_header) + sizeof(IP_header)
于 2012-09-29T23:33:24.857 回答