usi++(UNIX 套接字介面)是一個低階網路庫,用於直接在 RAW 或 PACKET 套接字上傳送/接收 IP、IP6、ARP 等封包。它還可用於網路監控和滲透測試工具的快速開發。如果您需要 Layer2 DNET 提供程序,則需要libpcap
和libdnet
。
usi++ 受 GPL 約束。有關更多詳細信息,請參閱文件複製。
包含乙太網路 MAC 的資料檔案。它是從 arpwatch 取得的。
由於 USI++ 是 GPL,因此絕對沒有任何保證。您使用它的風險由您自行承擔。
$ cd src
$ autoconf
$ ./configure
$ make
# make install
請注意,如果您安裝了多個libpcap
進行測試,則產生的Makefile
只是一個建議。配置腳本實際上無法知道您更喜歡哪個 include 或 lib 路徑。在這種情況下,您必須編輯產生的Makefile
以準確指向它,以及設定/取消設定config.h
中所需的定義。
安裝多個 libpcap 並不罕見,因為諸如pcap_set_immediate_mode()
或映射資料包套接字等各種函數最近才出現。
通常是這樣的:
# c++ -std=c++11 foo.cc -lusi++ -lpcap -L/usr/local/lib -I/usr/local/include
如果您編譯了支援dnet 的usi++,這允許您在資料鏈路層(不僅僅是 RAW 套接字)發送資料包,您還需要連結-ldnet
。較新的libpcap可能已經包含pcap_inject()
因此您也可以在沒有libdnet 的情況下建立 usi++ ,因為此函數還提供了一種發送資料鏈路幀的可移植方式。
請查看libusi++
的 HTML 文件(透過 doxygen 產生)或範例。
Linux、BSD、OSX。
沒有任何。
鏈路層處理已更改。現在所有類別均衍生自 Layer2 {},其中包含用於接收和傳輸資料的 RX 和 TX 物件。類別聲明可以在相應的 .h 檔案中找到。這些類別是抽象的,這意味著您必須派生自己的類別才能使其正常工作。查看 .h 文件,您必須實作哪些函數。 USI++ 附帶了Pcap
、 TX_IP
、 TX_eth_dnet
等類,可讓您擷取/傳送封包。它們為您提供基本功能,以便您可以正常使用適用於 USI++ 1.67 或更低版本的程式。透過使RX
和TX
抽象,我們確保Layer2
可以存取諸如sendpack()
之類的例程。您可以自由地為不同的硬體(FDDI,...)編寫自己的基於 RX/TX 的類別。您可以在運行時更改 RX/TX 行為,因此它盡可能靈活。例如,您可以偵測到您正在使用 PPP,然後載入 PPP 發射器。玩得開心。