设为首页 加入收藏

TOP

Ubuntu下GCC之libpcap库数据库通信协议解析基础框架代码(五)
2014-11-24 12:33:35 来源: 作者: 【 】 浏览:3
Tags:Ubuntu GCC libpcap 数据库 通信 协议 解析 基础 框架 代码
gth));
printf("Packet checksum:0x%02x\n",tns->packet_checksum);
printf("Type:%02x\n",tns->type);
printf("Flag:%02x\n",tns->flag);
printf("Header Checksum:0x%02x\n",tns->header_checksum);

int size_data=size_tcp+sizeof(struct db_tns);
switch (tns->type)
{
case 0x01: //analyzing connect packet
{
printf("connect package\n");
struct db_tns_connect* con;
con=(struct db_tns_connect*)(packet+size_data);

printf("version::%d\n",ntohs(con->ns_vr));
printf("version(compatible):%d\n",ntohs(con->ns_compatible_ver));
printf("Service Options:%02x\n",ntohs(con->ser_opt));
// printf("Service Options2:%04x\n",con->ser_opt2);
printf("Session Data Unit Size:%d\n",ntohs(con->SDU_size));
printf("Max Trans Data Unit:%d\n",ntohs(con->TDU_size));
printf("NT Protocol characteristics1:%04x\n",ntohs(con->NT_protocol_ch));
// printf("NT Protocol characteristics2:%02x\n",con->NT_protocol_ch2);
printf("Max packets:%d\n",ntohs(con->max_packets));
printf("Hardware:%02x\n",con->hardware);
printf("lentgh of Connect Data:%d\n",ntohs(con->data_length));
printf("Offset of Connect Data:%d\n",ntohs(con->offset));
printf("Max Receivable Connect Data:%d\n",ntohl(con->max_data));
printf("Flags 0:%02x\n",con->flag0);
printf("Flags 1:%02x\n",con->flag1);


printf("Trace Cross Facility Item 1:%08x\n",con->item);
printf("Trace Cross Facility Item 2:%08x\n",con->item2);
printf("Trace Unique Connect ID:%16x\n",ntohs(con->id));
// print_payload(con->buff,strlen(con->buff));
buff=(u_char *)(packet+size_data+sizeof(struct db_tns_connect)-2);//-2 =offset
printf("BUFFER LEN:%d\n",strlen(buff));
put_in_file(buff,strlen(buff));
break;
}
case 0x02://analyzing accept package
{
printf("accept package\n");
struct db_tns_accept* con;
con=(struct db_tns_accept*)(packet+size_data);
printf("Version:%d\n",ntohs(con->ns_vr));
printf("Service Options:%02x\n",ntohs(con->ser_opt));
printf("Session Data Unit Size:%d\n",ntohs(con->SDU_size));
printf("Max Trans Data Unit:%d\n",ntohs(con->TDU_size));
printf("Hardware:%02x\n",con->hardware);
printf("Accept Data Length:%d\n",ntohs(con->data_length));
printf("Offset to Accept Data:%d\n",ntohs(con->offset));


printf("Flags 0:%02x\n",con->flag0);
printf("Flags 1:%02x\n",con->flag1);
break;
}
case 0x03:
{
printf("ack package\n");



break;
}
case 0x04:
{
printf("reject package\n");
struct db_tns_reject* con;
con=(struct db_tns_reject*)(packet+size_data);
printf("User Refuse Reason 0:%02x\n",con->usr_refuse_reason);
printf("System Refuse Reason 0:%02x\n",con->sys_refuse_reason);
printf("Data Length:%d\n",ntohs(con->data_length));
break;
}
case 0x05:
{
printf("redirect package\n");
struct db_tns_redirect* con;
con=(struct db_tns_redirect*)(packet+size_data);
printf("Data Length:%d\n",ntohs(con->data_length));
printf("Data:%02x\n",con->data);//
break;
}
case 0x06:
{ printf("data package\n");
//need to analyse data packages
break;
}
case 0x09: printf("abort package\n");break;
case 0x0b:printf("resend package,no content in this type of packet\n");break;
case 0x0c:
{
printf("marker package\n");
struct db_tns_marker* con;
con=(stru

首页 上一页 2 3 4 5 6 7 下一页 尾页 5/7/7
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Java读写文件 将内容追加到文件尾.. 下一篇C#获取控制台句柄的方法

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·用 C 语言或者限制使 (2025-12-25 08:50:05)
·C++构造shared_ptr为 (2025-12-25 08:50:01)
·既然引用计数在做 GC (2025-12-25 08:49:59)
·Java 编程和 c 语言 (2025-12-25 08:19:48)
·. net内存管理宝典这 (2025-12-25 08:19:46)