mind-reader
Messages postés4Date d'inscriptionvendredi 1 février 2013StatutMembreDernière intervention26 février 2013
-
20 févr. 2013 à 00:14
Bonjour,
j'ai utilisé le code open source de tcp dump pou capturer des packets ip le code est en C , mais par defaut il affichent seulement l'adresse source et l'adrese de destination d'un packet , et le protocole , comment on peut affiché la virsion d'ip et et les autre caractéristiques d'un packet ?????
voila l'ip header et la partie qui affiche les 2 addresse et le protocole utilisé :
/* IP header */
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 */
};
/* print source and destination IP addresses */
printf(" From: %s\n", inet_ntoa(ip->ip_src));
printf(" To: %s\n", inet_ntoa(ip->ip_dst));
printf(" To: %s\n", ip-> ip_vhl);
/* determine protocol */
switch(ip->ip_p) {
case IPPROTO_TCP:
printf(" Protocol: TCP\n");
break;
case IPPROTO_UDP:
printf(" Protocol: UDP\n");
return;
case IPPROTO_ICMP:
printf(" Protocol: ICMP\n");
return;
case IPPROTO_IP:
printf(" Protocol: IP\n");
return;
default:
printf(" Protocol: unknown\n");
return;
}