1
Compte tenu de cette tête, comment puis-je trouver si le champ PLUS FRAGMENTS est défini ou non ..Comment trouver si le champ MORE FRAGMENTS est défini ou non?
struct sniff_ip {
u_char ip_vhl; /* version << 4 | header length >> 2 */
u_char ip_tos; /* type of service */
u_short ip_len; /* total length */
u_short ip_id; /* identification */
u_short ip_off; /* fragment offset field */
#define IP_RF 0x8000 /* reserved fragment flag */
#define IP_DF 0x4000 /* dont fragment flag */
#define IP_MF 0x2000 /* more fragments flag */
#define IP_OFFMASK 0x1fff /* mask for fragmenting bits */
u_char ip_ttl; /* time to live */
u_char ip_p; /* protocol */
u_short ip_sum; /* checksum */
struct in_addr ip_src,ip_dst; /* source and dest address */
};
... et, si les champs 'ip_hdr' sont dans l'ordre où ils sont en sur le réseau (par exemple, s'il s'agit d'un paquet capturé sur le réseau ou lu depuis un fichier de capture en utilisant libpcap/WinPcap et non modifié), n'oubliez pas de le convertir de l'ordre des octets du réseau vers l'ordre des octets avec ntohs() premier. –