如何在C#中打开pcap-ng文件

ped*_*pin 4 c# winpcap pcap libpcap

到目前为止,我一直在使用WinPcap在C#中打开pcap文件:

[DllImport("wpcap.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
private extern static IntPtr pcap_open_offline(string fname, byte[] errbuf);
Run Code Online (Sandbox Code Playgroud)

现在我想做类似打开pcap-ng文件的东西,所以我得到纳秒级分辨率(我有一个新的嗅探器:-))

不幸的是WinPcap失败了这个错误:"坏转储文件格式"

任何人都知道如何在Windows中使用pcap-ng?

干杯,佩德罗

小智 6

Libpcap 1.1.x及更高版本支持读取一些pcap-ng文件(其中所有接口具有相同的链路层头类型和快照长度); 但是,没有基于libpcap 1.1.x或1.2.x的WinPcap版本,因此没有可以读取pcap-ng文件的WinPcap版本.因此,WinPcap周围没有CLR语言包装器能够读取pcap-ng文件,直到这样的WinPcap发布.

此外,libpcap/WinPcap API当前不返回具有纳秒分辨率的时间戳,因此即使您使用libpcap读取具有纳秒分辨率时间戳的文件,也不会看到纳秒分辨率的时间戳.

现在,你必须编写自己的代码,或者在Wireshark的Wiretap库中编写一个包装器.(请注意,Wiretap的API受到从Wireshark主要版本到另一个版本的重大且不兼容的更改.)