J'ai couru un programme (le lien est - http://www.security-freak.net/raw-sockets/sniffer_eth_ip_tcp.c) dans mon fedora core 5. compilation, je reçois les erreurs suivantes:comment résoudre les erreurs comme « struct iphdr » n'a pas de membre nommé « DADDR »
[[email protected] ~]# gcc sniffer_eth_ip_tcp.c
In file included from sniffer_eth_ip_tcp.c:12: /usr/include/linux/ip.h:97: error: expected specifier-qualifier-list before ‘uint8_t’
In file included from /usr/include/linux/tcp.h:21,
from sniffer_eth_ip_tcp.c:13:
/usr/include/asm/byteorder.h:6:2: warning: #warning using private kernel header; include <endian.h> instead!
sniffer_eth_ip_tcp.c: In function ‘ParseIpHeader’:
sniffer_eth_ip_tcp.c:147: error: ‘struct iphdr’ has no member named ‘daddr’
sniffer_eth_ip_tcp.c:148: error: ‘struct iphdr’ has no member named ‘saddr’
sniffer_eth_ip_tcp.c: In function ‘ParseTcpHeader’:
sniffer_eth_ip_tcp.c:185: error: ‘struct iphdr’ has no member named ‘protocol’
sniffer_eth_ip_tcp.c:187: error: ‘struct iphdr’ has no member named ‘ihl’
Mais, la structure iphdr dans le fichier d'en-tête correspondant contient les membres de données mentionnés ci-dessus. Quelqu'un peut-il aider s'il vous plaît ..
S'agit-il des premières erreurs qui se produisent, ou y en a-t-il d'autres avant elles? Pouvez-vous poster la sortie _entire_ du compilateur? Regardez également la définition de 'struct iphdr' dans /usr/include/linux/ip.h pour voir si ces membres sont réellement définis. –
Quel est le fichier que vous compilez actuellement? La sortie du compilateur indique que le nom de fichier est "tcp.c" et non "sniffer_eth_ip_tcp.c". De plus, "sniffer_eth_ip_tcp.c" (comme prévu dans ce lien) n'a que 268 lignes. –
J'ai maintenant posté les avertissements aussi. que dois-je faire pour rectifier .. (tcp.c avait également le même code) – trinity