1. 程式人生 > >(轉)Libcap庫學習::(一)簡介

(轉)Libcap庫學習::(一)簡介

LibpcapPacket 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是無法實現的。