我正在使用SharpPcap + PacketDotNet库处理一些.pcap文件,在计算时间戳的方式上遇到了一个错误。
以这个Timeval属性为例,它是这样的:
PosixTimeval Timeval
{
DateTime Date;
ulong Seconds;
ulong MicroSeconds;
}问题如下:假设您在Wireshark中打开了一个跟踪,其中一个数据包的时间戳为"0.002“。一旦你在你的一个程序中打开它,它就会检索数据包,并对其时间进行设置,以便Seconds = 0和MicroSeconds = 002 = 2。这是在幕后完成的,所以据我所知,没有办法避免它。
我的问题是,这个问题是否对其他库(也许是所有库)都是通用的?谁操作pcap文件格式,我认为这是围绕着相同的c/c++函数集合构建的,或者如果这只是我正在使用的那些函数的问题。
发布于 2010-04-17 00:00:46
我是sharppcap/packet.net的作者。
您看到的时间戳值的bug是什么?您提到的转换似乎是正确的。0.002秒等于2毫秒。
时间戳值应为捕获数据包时的完整unix时间。当然,0.002的时间并不是绝对时间,而是相对时间。
我将为sharppcap添加一个单元测试来验证数据包时间,如果还没有的话。
https://stackoverflow.com/questions/2569822
复制相似问题