我正在使用pcap示例代码来创建自己的嗅探器。我下载了他们的示例嗅探器,它可以在Windows上运行,但不能在Linux上运行。我在两台机器上都使用gcc编译器,并且仅包含pcap.h。
错误是:取消引用不完整类型的指针。
网络掩码导致错误。 netmask是接口的第一个地址的掩码。

u_int netmask=netmask((struct sockaddr_in*)d->addresses->netmask))->sin_addr.S_un.S_addr;


有什么解决方案吗?

最佳答案

编译器指示它在范围内没有struct sockaddr_in的定义,因此无法在这种结构内查看。在Linux上,此标头中定义了struct,您需要包括:

#include <netinet/in.h>

关于c - 帮助使用pcap库嗅探数据包,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2482382/

10-10 17:41