2010-03-25 75 views

回答

2

如果「注入數據包到Linux TCP堆棧」你的意思是發送一些數據,Linux內核將把從以太網接口來那麼你可以使用一個「龍頭」裝置的框架。如果IP數據包(第3層)足夠好,則使用「tun」設備。

http://en.wikipedia.org/wiki/TUN/TAP

http://www.kernel.org/pub/linux/kernel/people/marcelo/linux-2.4/Documentation/networking/tuntap.txt

+0

是的,我的意思是發送數據包來自同一臺計算機,數據包就像來自以太網設備。 我正在尋找可嵌入到我的C++代碼中的解決方案。如果我創建網絡分流器,我如何將數據包發送到我的應用程序運行的操作系統? – 2010-03-25 15:16:33

+0

只需打開/ dev/net/tun,對其進行配置並在其中寫入數據包...請參閱添加到我的答案中的其他鏈接(已在Wikipedia文章中鏈接)。 – 2010-03-25 19:55:44

0

否則,如果你只是想知道注射手工製作的數據包進入網絡,閱讀手冊頁和尋找與原始套接字的在線幫助。一些好的開始地點是man 7,man packet,在security-freak.net上有一些好的教程,儘管這些代碼並沒有爲我的口味寫得特別好。

1

Libnet

LIBNET是一個通用的網絡API,提供對多種協議的訪問。它不是作爲一種「一站式」網絡解決方案設計的。目前,Libnet無法使用某些網絡協議中常見的許多功能,例如通過TCP/IP進行流式傳輸。我們認爲Libnet不應該提供其他協議中可能的特定功能。如果我們將Libnet限制爲通信所需的最少量(數據包/數據包),那麼這允許它支持更多的接口。