在Linux中使用原始套接字进行数据包嗅探C
问题描述:
我需要在Linux中编写一个数据包嗅探器来检测发送的HTTPS数据包并从请求中保存url。我在security-freak找到了这个代码并运行它。此代码运行并只侦听收到的数据包,但我需要在嗅探器中获取发送的数据包。 如何在此代码中获取发送的数据包?在Linux中使用原始套接字进行数据包嗅探C
我不能使用libcap(禁止)之类的任何库。 的代码是:sniffer.c
答
您应该使用ETH_P_ALL而不是ETH_P_IP作为协议。 ETH_P_IP只侦听传入的IP数据包。
如果目标是查看http数据包,为什么不使用ETH_P_IP?你不需要一切。 – JXG 2009-11-03 13:42:09
目标是看到传出的http数据包。 ETH_IP_P只能看到传入的数据包。参见主题:http://lkml.indiana.edu/hypermail/linux/kernel/9604.1/0603.html – gte525u 2009-11-03 15:18:24