-
- /* IP ? */
- if((ntohs(e_hdr->h_proto)==ETH_P_IP) | (ntohs(snap_hdr->proto)==ETH_P_IP)) {
- printf("ip protocol: (%d bytes)\n",i_o);
- ip_hdr=(struct iphdr *)(package+p_o+w_o+e_o);
- printf("version = %x ",ntohs(ip_hdr->version));
- printf("header_length = %x \n",ntohs(ip_hdr->ihl));
- printf("service = %x ",ntohs(ip_hdr->tos));
- printf("total_length(dec.) = %d \n",ntohs(ip_hdr->tot_len));
- printf("source_ip: ");
- for(i=0;i<=3;++i) {
- printf("%d%s",
- (ip_hdr->saddr&(0xff<<(8*i)))>>(8*i),
- (i==3?"\n":"."));
- }
- printf("destination_ip: ");
- for(i=0;i<=3;++i) {
- printf("%d%s",
- (ip_hdr->daddr&(0xff<<(8*i)))>>(8*i),
- (i==3?"\n":"."));
- }
- printf("ip_id = %x ",ntohs(ip_hdr->id));
- printf("ip_offset = %x \n",ntohs(ip_hdr->frag_off));
- printf("time2live = %x ip_proto = %x\n",ntohs(ip_hdr->ttl),
- ntohs(ip_hdr->protocol));
- // printf("chksum: %x\n",ntohs(ip_hdr->ip_sum));
- }