c++ winpcap开发(5)
生活随笔
收集整理的這篇文章主要介紹了
c++ winpcap开发(5)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
過濾引擎是WinPcap(和libpcap)提供的最強大的功能之一。
它提供了一種非常有效的方式來接收網絡流量的子集,并且(通常)與WinPcap提供的捕獲機制集成。
用于過濾數據包的功能是pcap_compile()和pcap_setfilter()。
pcap_compile()接收一個包含高級布爾(filter)表達式的字符串,并產生一個低級字節代碼,可以在包驅動程序中由fileter引擎解釋。
布爾表達式的語法可以在本文檔的“ 過濾表達式語法”部分找到。
pcap_setfilter()將過濾器與內核驅動程序中的捕獲會話相關聯。
一旦pcap_setfilter()被調用,相關的過濾器將被應用于來自網絡的所有數據包,并且所有符合一致的數據包(即布爾表達式計算為真的數據包)將被實際復制到應用程序。
以下代碼顯示如何編譯和設置過濾器。
請注意,我們必須從描述適配器的pcap_if結構中檢索網絡掩碼,因為pcap_compile()創建的一些過濾器需要它。
在此代碼片段中傳遞給pcap_compile()的過濾器是“ip和tcp”,這意味著“只保留IPv4和TCP兩者的數據包并將其傳遞到應用程序”。
總結
以上是生活随笔為你收集整理的c++ winpcap开发(5)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux 磁盘分区、格式化、目录挂载
- 下一篇: 使用WSW将Nginx创建为Window