C解析来自pcap文件的数据包

时间:2015-09-05 10:12:47

标签: c wireshark-dissector

我是网络新手,并尝试编写pcap文件比较工具作为学习网络编程的一种方式 这是我的代码片段(我写os.unlink稍后将在dll中使用)

c#

正如您所看到的,我已经开始一个接一个地解析标题 (ptt_packet PcapDPI(ptt_ethernetheader puc_PacketData , size_t size) { uint8_t *head = (uint8_t*)puc_PacketData; ptt_ethernetheader ether_header; ptt_ipheader ip_header; ptcp_header_t tcp_header; pudp_header_t udp_header; ether_header = (ptt_ethernetheader)head; head += sizeof(*ether_header); if (0x0800 == ntohs(ether_header->type))/*IP*/ { ip_header = (ptt_ipheader)head; head += sizeof(*ip_header); /* now we need to check if tcp or udp*/ if (ntohs(0x06) == ipProtocolNtohsRes)/*TCP*/ { //tcp_header = (ptcp_header_t)((uint8_t*)puc_PacketData + 20); tcp_header = (ptcp_header_t)head; head += sizeof(*tcp_header); } else if (ntohs(0x11) == ipProtocolNtohsRes)/*UDP*/ { udp_header = (pudp_header_t)head; head += sizeof(*udp_header); } }

我的问题是:是否可以在eth->ip->tcp/udp之外使用wireshark dissectors 甚至更好:有没有人知道一个wireshark做了填充数据包结构的所有脏工作

0 个答案:

没有答案