在Python中使用URL嗅探

pla*_*ten 5 python url sniffing ipv6 libpcap

有谁知道如何在Python中编写实时数据嗅探器,它提取原始IP地址和正在访问的完整URL?我已经考虑过从urlsnarf中提取数据,但是不支持IPv6(并且连接将是IPv6主机).

虽然我可以从tcpdump和greping GET/POST中提取数据,这会让我只使用网络服务器上的路径,但我不会获得相关的FQDN.遗憾的是,由于环境的配置,使用带有IPv6 TPROXY的SQUID不是一种选择.

有没有人对如何使用libpcap的Python绑定有任何想法?非常感谢你的帮助:)

谢谢 :)

小智 2

不幸的是,对于 IPv6,您只能自己进行 TCP 重组。好消息是您只关心 URL 数据,这些数据(通常)应该位于一两个数据包中。

您应该能够使用 pylibpcap 来完成此操作。您需要在 pcap 对象上使用 setfilter 以确保您只查看 TCP 流量。当您在 pcap 循环中前进时,您将向有效负载应用一些 HTTP 正则表达式。如果您有类似 HTTP 流量的内容,请继续尝试解析标头以获取 URL 数据。希望您能获得完整的 URL,并在数据包末尾之前换行。如果没有,您将不得不进行一些轻量级 TCP 重组。

哦,您将需要使用 socket.inet_ntop 和 socket.getaddrinfo 来打印有关 IPv6 主机的信息。