pengchong
=化零为整= 积分:2 贴数:1
|
日期:2007-8-8 13:32:50
void tcp_callback(u_char *a,const struct pcap_pkthdr *packet_header,const u_char * packet_content) { struct tcp_header *tcp_protocol; u_char flags;
tcp_protocol=(struct tcp_header*)(packet_content+14+20);
flags=tcp_protocol->tcp_flags; //printf("源 端口号:%d\n",ntohs(tcp_protocol->tcp_sport)); //printf("目的端口号:%d\n",ntohs(tcp_protocol->tcp_dport)); //printf("首部长度:%d\n",tcp_protocol->tcp_offset*4); printf("序列号:%u\n",ntohl(tcp_protocol->tcp_ackknowledgement)); printf("确认号:%u\n",ntohl(tcp_protocol->tcp_ack)); //printf("%d\n",tcp_protocol->len); printf("%d\n",packet_header->len);
//printf("窗口大小:%d\n",ntohs(tcp_protocol->tcp_windows)); //printf("紧急指针:%d\n",ntohs(tcp_protocol->tcp_urgent_pointer)); //printf("校验和:%d\n",ntohs(tcp_protocol->tcp_checksum)); switch (ntohs(tcp_protocol->tcp_dport)) { case 80: //printf("上层协议HTTP\n"); break; case 21: printf("上层协议FTP\n"); break; case 23: printf("上层协议TELNET\n"); break; case 25: printf("上层协议SMTP\n"); break; case 110: printf("上层协议POP3\n"); break; default: break; } //printf("标记:%d\n",tcp_protocol->tcp_flags); if (flags & 0x08) printf("PSH"); if (flags & 0x10) printf("ACK"); if (flags & 0x02) printf("SYN"); if (flags & 0x20) printf("URG"); if (flags & 0x01) printf("FIN"); if (flags & 0x04) printf("RST"); printf("\n"); printf("%c",packet_content); }
我想显示包的具体内容,现在显示包头和协议没有问题了.
printf("%c",packet_content);这句话怎么不行呢?
谢谢哪位高手指教!!!!!!!1!!!!!!
新补天网 新补天网讨论版
|