到目前为止,我一直使用WinPcap在C#中打开pcap文件:
[DllImport("wpcap.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
private extern static IntPtr pcap_open_offline(string fname, byte[] errbuf);现在我想做一些类似于打开pcap-ng文件的事情,这样我就可以获得纳秒级的分辨率(我得到了一个新的嗅探器:-)
不幸的是,WinPcap失败并出现以下错误:“错误的转储文件格式”
有人知道如何在Windows中使用pcap-ng吗?
干杯,佩德罗
发布于 2012-01-24 07:23:32
Libpcap 1.1.x和更高版本支持读取一些pcap-ng文件(其中所有接口都具有相同的链路层报头类型和快照长度);但是,没有基于libpcap 1.1.x或1.2.x的WinPcap版本,因此没有可以读取pcap-ng文件的WinPcap版本。因此,在这样的WinPcap版本出现之前,围绕WinPcap的任何CLR语言包装器都不能读取pcap-ng文件。
此外,libpcap/WinPcap API目前不返回纳秒精度的时间戳,所以即使您使用libpcap读取了纳秒精度的文件,也不会看到纳秒精度的时间戳。
就目前而言,您必须编写自己的代码,或者在Wireshark的窃听库周围编写一个包装器。(请注意,从一个Wireshark主版本到另一个Wireshark主版本,Wiretap的API会发生重大且不兼容的更改。)
发布于 2015-05-16 10:49:12
我移植了WinPcap to libpcap 1.7.3,现在它可以打开pcap-ng文件,并支持纳秒时间戳解析。
发布于 2012-01-24 00:00:14
你试过使用sharpPcap吗?不确定它是否支持它(现在不能尝试),但它也支持打开捕获文件iirc:http://sourceforge.net/apps/mediawiki/sharppcap/index.php?title=Main_Page
https://stackoverflow.com/questions/8973337
复制相似问题