2010-03-20 23 views
0

J'utilise des codes d'échantillon pcap pour créer mon propre renifleur. J'ai téléchargé leur sample sniffer et son travail sur windows mais pas sur linux. J'utilise le compilateur gcc sur les deux machines, et je n'ai que pcap.h inclus.
l'erreur est: pointeur de déréférencement vers un type incomplet.
le masque de réseau provoque l'erreur. le masque de réseau est le masque de la première adresse de l'interface.aide à utiliser la bibliothèque pcap pour renifler les paquets

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

des solutions?

+0

http://yuba.stanford.edu/~casado/pcap/ peut également vous intéresser. –

+0

structsockaddr_in - Vous ne manquez pas un espace entre struct et sockaddr_in? –

Répondre

0

Le compilateur indiquant qu'il n'a pas la définition de struct sockaddr_in dans la portée, il ne peut donc pas regarder à l'intérieur d'une telle structure. Sur Linux, cette structure est définie dans cet en-tête, que vous devrez inclure:

#include <netinet/in.h>