在C#中使用SharpPCap进行解析时,如何判断PCAPNG文件是否是以有限的快照长度捕获的?

在C#中使用SharpPCap进行解析时,如何判断PCAPNG文件是否是以有限的快照长度捕获的?,c#,.net,wireshark,sharppcap,pcap-ng,C#,.net,Wireshark,Sharppcap,Pcap Ng,这似乎是一个愚蠢的问题,但我找不到任何方法来判断一个数据包是否只是部分被捕获。我在数据包结构中找到的所有数据长度都使用来自报头的长度,甚至字节结构似乎也用垃圾填充数据。也就是说,如果我捕获768字节数据包中的50个字节,则数据包中有768字节的“数据” Wireshark源在解析数据包时似乎需要一个异常,以知道它只被部分捕获。我只读取头信息,所以我不解析任何超过TCP头的内容 我真正想做的是构建一个进度条,用于捕捉长度有限的捕捉,如果有办法的话 谢谢,如果您在使用tshark或tcpdump进行

这似乎是一个愚蠢的问题,但我找不到任何方法来判断一个数据包是否只是部分被捕获。我在数据包结构中找到的所有数据长度都使用来自报头的长度,甚至字节结构似乎也用垃圾填充数据。也就是说,如果我捕获768字节数据包中的50个字节,则数据包中有768字节的“数据”

Wireshark源在解析数据包时似乎需要一个异常,以知道它只被部分捕获。我只读取头信息,所以我不解析任何超过TCP头的内容

我真正想做的是构建一个进度条,用于捕捉长度有限的捕捉,如果有办法的话


谢谢,

如果您在使用
tshark
tcpdump
进行数据包捕获时按ctrl+c,您可以复制此操作。如果捕获在分组的中间被中断,则字段捕获的长度和实际长度在分组标头和pCAPNG分组标题中将不同。 根据,对于单个数据包报头,相关字段为:

Public Fields
  CaptureLength uint . The the bytes actually captured. If the capture length is 
                         small CaptureLength might be less than PacketLength  
  PacketLength  uint . The length of the packet on the line

我没有看到pcapng代码,因此不太可能已经实现了解析器。

如果在使用tshark或tcpdump进行数据包捕获时按ctrl+c,则可以复制此操作。如果捕获在分组的中间被中断,则字段捕获的长度和实际长度在分组标头和pCAPNG分组标题中将不同。 根据,对于单个数据包报头,相关字段为:

Public Fields
  CaptureLength uint . The the bytes actually captured. If the capture length is 
                         small CaptureLength might be less than PacketLength  
  PacketLength  uint . The length of the packet on the line

我没有看到pcapng代码,因此不太可能实现了解析器。

快速查看SharpPcap代码,它调用libpcap来解析数据包,而不是自己解析数据包,因此,如果它使用的是足够新的libpcap版本(1.1,在Windows上的UN*X上,我不认为WInPcap是基于最新版本的,但Npcap是),其中libpcap可以读取一些pcapg文件,ShapPcap也可以。查看代码,SharpPcap在使用libpcap时为pcap文件的数据包头字段提供绑定,但不为winpcap或npcap提供绑定。请注意,数据包头不是数据包或pcap头。我在dir中没有看到pcapng的增强数据包块的任何绑定libpcap、winpcap、npcap的片段。如果此项目中有任何pcapng功能,它确实会出现在任何文档或代码中。它看起来在其中一个中有基本的数据包解析,但这里只检索到一个长度。快速查看SharpPcap代码,它会调用libpcap解析数据包,而不是解析数据包elf,所以,如果它使用的是足够新的libpcap版本(1.1,在Windows上的UN*X上,我不认为WInPcap是基于足够新的版本,但Npcap是),其中libpcap可以读取一些pcapg文件,ShapPcap也可以。查看代码,SharpPcap在使用libpcap时为pcap文件的数据包头字段提供绑定,但不为winpcap或npcap提供绑定。请注意,数据包头不是数据包或pcap头。我在dir中没有看到pcapng的增强数据包块的任何绑定用于libpcap、winpcap、npcap的容器。如果此项目中有任何pcapng功能,它确实会出现在任何文档或代码中。它看起来也像是在其中一个中有基本的数据包解析,但此处仅检索到一个长度。