簡體   English   中英

pcap_handler 回調僅在使用 npcap v0.9991 時包含空包

[英]pcap_handler callback contains empty packets only when using npcap v0.9991

我有一些代碼應該從以太網適配器捕獲數據。 我正在使用以下步驟獲取數據(在確定設備名稱的格式后:“rpcap://\Device\NPF_{0C5[...]C89}”):

deviceHandle = pcap_open(device_name, 65536, 1 /* promiscous */, 100, NULL, errbuf)

然后運行一個循環(直到應該停止捕獲):

pcap_dispatch(deviceHandle, -1, pcap_handler, userHandle /* unsigned char* to user handle */)

使用從 Windows\System32\Npcap 文件夾加載的 npcap dll "wpcap.dll" 運行此程序時,我會調用 pcap_handler 回調,但回調中的所有參數始終為零:

header->caplen == 0
header->len == 0
header->ts.tv_sec == 0
header->ts.tv_usec == 0

unsigned char* 數據不是 NULL 但它指向的 memory 僅為零。

當我僅使用“Program Files (x86)\Win10Pcap\x64”(當前最新版本)中的 Win10Pcap v10.2.5002 wpcap.dll 運行完全相同的代碼時,一切正常,我可以正確獲取捕獲的數據。 該代碼大約在一年前工作,因此可能對 npcap 進行了更改,導致行為有所不同,但我找不到回調中沒有提供數據的原因。

npcap 安裝和 dll 是 Wireshark v3.2.4 64 位安裝的一部分,當運行 Wireshark 並在同一以太網適配器上捕獲數據時,數據會正確顯示在 Wireshark 中,因此 npcap 庫在這種情況下正常工作。

誰能給我一個提示問題可能出在哪里? 我在 64 位 Windows 10 上運行代碼。因為它在 npcap v0.9991 中可能已經發生變化之前正在工作,這可能會改變獲取捕獲數據的行為或要求,但我不知道這是導致問題的原因.

最好的問候,貢納爾

這可能是Npcap 問題 #178 ,已在 Npcap 0.9992 中修復,因此它也應該在當前版本中修復(截至我撰寫本文時為 0.9994)。 升級你的 Npcap 安裝。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM