WinPcap是Windows平臺下一個專業網絡數據包捕獲開發包,是爲Libpcap在Windows平臺下實現數據包的捕獲而設計的。在設計WinPcap時參照了Libpcap,使用方法與LibPcap相似。使用WinPcap開發包,可以把在Linux下基於Libpcap的程序很容易地移植到Windows平臺下。WinPcap是在BSD許可證下發布地,它主要由加利福尼亞地Lawrence Berkeley Laboratory開發。WinPcap地下載網址爲:http://winpcap.polito.it/ 。目前有不少軟件都使用了WinPcap開發包,其中最爲著名的是Ethereal。它是一個免費的網絡協議分析軟件,其對數據包解析的細緻程度甚至高於業界著名的Sniffer和WildPackets;
Libnet是一個專業的網絡數據包構造和發送開發包,它是一個高層次的API函數庫,允許開發者構造和發送網絡數據包。Libnet提供了一個對底層網絡數據包進行構造、修改和發送的高級接口。它隱藏了很多底層細節,省去了很多麻煩,如多路技術、緩衝區管理、網絡數據包頭信息、字節流順序、操作系統兼容性,以及校驗和計算問題等。Libnet主要提供了在IP層和鏈路層構造網絡數據包的功能和一些非常有用的輔助功能。使用Libnet可以非常輕鬆、快捷地構造任何形式的網絡數據包,開發各種各樣的網絡安全應用程序,甚至非常複雜的程序。Libnet主要用C語言寫成,提供了低層網絡數據報的構造、處理和發送功能.他的主要特點是:
.高層接口:Libnet主要用C語言寫成
.數據報構造:Libnet提供了一系列的TCP/IP數據報文的構造函數以方便用戶使用。
.數據報的處理:Libnet提供了一系列的輔助函數,利用這些輔助函數,幫助用戶簡化那些煩瑣的事務性的編程工作
.數據報發送:Libnet允許用戶在兩種不同的數據報發送方法中選擇。
另外Libnet允許程序獲得對數據報的絕對的控制,其中一些是傳統的網絡程序接口所不提供的。
Libnet提供兩種將數據報發送到網絡的接口:原始套接字(raw socket)接口和鏈路層(Link Layer)接口。本文選取的是鏈路層接口進行設計的。