winpcap和libpcap的最強大的特性之一,是擁有過濾資料報的引擎。 它提供了有效的方法去獲取網路中的某些資料報,這也是winpcap捕獲機制中的乙個組成部分。 用來過濾資料報的函式是 pcap_compile() 和 pcap_setfilter() 。
pcap_compile() 它將乙個高層的布林過濾表示式編譯成乙個能夠被過濾引擎所解釋的低層的位元組碼。有關布林過濾表示式的語法可以參見 filtering expression syntax 這一節的內容。
pcap_setfilter() 將乙個過濾器與核心捕獲會話向關聯。當 pcap_setfilter() 被呼叫時,這個過濾器將被應用到來自網路的所有資料報,並且,所有的符合要求的資料報 (即那些經過過濾器以後,布林表示式為真的包) ,將會立即複製給應用程式。
現在,我們可以捕捉並過濾網路流量了,那就讓我們學以致用,來做乙個簡單使用的程式吧。
在本講中,我們將會利用上一講的一些**,來建立乙個更實用的程式。 本程式的主要目標是展示如何解析所捕獲的資料報的協議首部。這個程式可以稱為udpdump,列印一些網路上傳輸的udp資料的資訊。
我們選擇分析和現實udp協議而不是tcp等其它協議,是因為它比其它的協議更簡單,作為乙個入門程式範例,是很不錯的選擇。讓我們看看**:
學習交流》^《歡迎拍磚
6 過濾資料
1 使用where子句 資料庫中一般包含大量的資料,很少需要檢索表中所有的行。通常會根據特定操作或者報告的需要提取表資料的子集。只檢索所需資料需要指定搜尋條件,搜尋條件也稱為過濾條件。在selece語句中,資料根據where子句中指定的搜尋條件進行過濾。where子句在表名 from子句 之後給出 ...
求delphi下winpcap程式設計資料 SOS
求delphi下winpcap程式設計資料 sos delphi windows sdk api 誰有ndis def.pas 我找到了其他幾個winpcap for delphi單元檔案 winpcap.pas packet32.pas bpf.pas 少乙個ndis def.pas up win...
winpcap網路程式設計在vc6下編譯出錯的原因
winpcap 4.1.1在vc6下編譯會出現以下錯誤,原因是vc6.0並不完美支援c 99標準,在64位cpu中編譯會有問題,將winpcap開發包換到4.0.1版本及以下錯誤消失 c wpdpack include pcap stdinc.h 79 error c2144 syntax erro...