2010-03-20 84 views
0

我使用pcap示例代碼來創建我自己的嗅探器。我下載了他們的示例嗅探器,並在windows上工作,但不在linux上。我在兩臺機器上都使用gcc編譯器,並且我只包含pcap.h。
錯誤在於:解除引用指向不完整類型的指針。
網絡掩碼導致錯誤。網絡掩碼是接口的第一個地址的掩碼。幫助使用pcap庫來嗅探數據包

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

任何解決方案?

+0

http://yuba.stanford.edu/~casado/pcap/可能也會引起您的興趣。 – 2010-03-20 09:22:05

+0

structsockaddr_in - 你不錯過struct和sockaddr_in之間的空格嗎? – 2010-03-20 09:51:54

回答

0

編譯器指出它沒有定義範圍內的struct sockaddr_in,所以它不能查看這樣的結構。在Linux上,該結構在此標頭中定義,您需要包含以下結構:

#include <netinet/in.h>