3

我需要在Linux中编写一个数据包嗅探器来检测发送的HTTPS数据包并从请求中保存url。我在security-freak找到了这个代码并运行它。此代码运行并只侦听收到的数据包,但我需要在嗅探器中获取发送的数据包。 如何在此代码中获取发送的数据包?在Linux中使用原始套接字进行数据包嗅探C

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

回答

7

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

+0

如果目标是查看http数据包,为什么不使用ETH_P_IP?你不需要一切。 – JXG 2009-11-03 13:42:09

+2

目标是看到传出的http数据包。 ETH_IP_P只能看到传入的数据包。参见主题:http://lkml.indiana.edu/hypermail/linux/kernel/9604.1/0603.html – gte525u 2009-11-03 15:18:24

0

通过适当libpcapDNET使用您应该能够得到所有网络流量 期望的层上(协议 - 5)(也是本传出)。 但你应该知道这一点。

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

+1

我们不能使用任何类似libcap或dnet的库 – SjB 2009-10-28 15:12:47

+0

您确定您的系统允许检测传出数据包吗?你可以使用libpcap来确定它是否可能。 – JXG 2009-11-03 13:56:53

+0

@bua“我不能使用libcap之类的任何库(禁止)。” – karimvai 2016-12-11 09:42:53

3

为什么你不能使用任何库?家庭作业?

如果没有来自您的代码的示例,很难回答,例如您如何设置sll_pkttype

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

+0

编辑并附上我的代码 – SjB 2009-10-28 15:53:05

相关问题