使用C中的Linux中的Raw套接字进行数据包嗅探

我需要在Linux中编写一个数据包嗅探器来检测发送的HTTPS数据包,并保存请求中的url。 我发现这个安全怪胎的代码,并运行它。 这个代码运行,只能嗅探收到的数据包,但我需要在嗅探器中获取发送的数据包。 如何在这个代码中获取发送的数据包?

我不能使用像libcap(禁止)的任何库。 代码是: sniffer.c

您应该使用ETH_P_ALL而不是ETH_P_IP作为协议。 ETH_P_IP只侦听传入的IP数据包。

为什么你不能使用任何图书馆? 家庭作业?

没有来自你的代码的例子很难回答,例如你如何设置sll_pkttype

dnsiff套件中的urlsnarf工具值得一看。

有了适当的libpcap或DNET的使用你应该能够获得所需的层(协议 – 5)(也是这个传出)的所有网络流量。 但你应该知道这一点。

你需要通过上面的库手册,并找到适当的过滤。