我正在編寫一個程序,它使用winpcap捕獲我們的交換機發出的一些特定的網絡流量。但是,無線設備將永遠不會收到這些數據包,因此我試圖找出如何確定網絡適配器是無線還是有線(這樣我就可以完全跳過無線適配器上的捕獲)。如何通過WinPCap確定網絡適配器是有線還是無線?
我的第一個想法是檢查所選接口的介質(當前基於該適配器的IP地址進行選擇 - 邏輯是,如果它具有IP地址,則連接)。問題是,是否pcap_datalink()將返回DLT_EN10MB,無論其有線或無線。
下一個念頭,就是嘗試pcap_can_set_rfmon(),這應該告訴我,如果該設備不能設置爲監控模式(因此如果還是沒有連線)。然而,當我嘗試使用這個函數時,我似乎得到了2019年的鏈接錯誤,這似乎被認爲是在沒有Airpcap的情況下不支持Windows的函數?
我真的不知道還有什麼可以嘗試,但如果有人有任何指針,這將是非常棒的。我想知道如果我不得不開始使用NDIS來確定系統上的每個適配器,然後將其匹配到WinPCap所使用的設備名稱,那麼它會變得多麼困難和複雜。當然,這是我可以保留的東西內部使用lib/WinPCap?
謝謝!