(轉)Libcap庫學習::(一)簡介
Libpcap是Packet Capture library的英文縮寫,即資料包捕獲函式庫,該庫提供的C函式介面用於捕獲經過指定網路介面(通過將網絡卡設定為混雜模式,可以捕獲所有經過該網路介面的資料包)的資料包。
Libpcap面向上層應用,提供了使用者級別的網路資料包捕獲介面,在系統部署時充分考慮到應用程式的可以移植性。
Libpcap主要有如下功能:
(1)資料包捕獲
捕獲流經本網絡卡的所有原始資料包,甚至對交換裝置中的資料包也能夠進行捕獲,本功能是嗅探器的基礎。
(2)自定義資料包傳送
構造任意格式的原始資料包,併發送到目標網路,本功能是新協議驗證、甚至攻擊驗證的基礎。
(3)流量採集與統計
對所採集到的網路中的流量資訊進行按照新規則分類,按指標進行統計,並輸出到指定終端。利用這項功能可以分析目標網路的流量特性。
(4)規則過濾
Libpcap自帶規則過濾功能,並提供指令碼程式設計介面,能夠按照使用者程式設計的方式對已經採集到的資料包進行過濾,以便提高分析的效能。
Libpcap的應用範圍:
由於擁有強大的功能,當前基於Libpcap的應用比較廣泛,有很多Unix上的流量相關的網路系統都是基於Libpcap的,它的一些典型應用如下:
(1)網路協議分析器
Libpcap應用最多的就是網路協議分析器,也可以稱之為網路嗅探。
(2)網路流量發生器
網路流量發生器也是Libpcap的一大應用,它是基於Libpcap的資料構造與傳送功能,可以有針對性的構造各種形式的資料包,並執行傳送工作,這樣的組合便構成了網路流量的產生工具。
(3)網路入侵檢測系統
網路入侵檢測系統(IDS)是發現網路入侵行為的關鍵,利用Libpcap所提供的資料包捕獲功能,可以進一步開發出IDS。
(4)網路掃描器
這是基於Libpacp的資料包構造與傳送功能。當前最著名的網路掃描器Tcpdump就是基於Libpcap開發而成的。
Libpacp只是提供網路資料包的監測以及傳送功能,並不提供控制層面的服務,類似於防火牆那種資料包過濾的功能,
Libpcap是無法實現的。