2010-03-25 51 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限制为通信所需的最少量(数据包/数据包),那么这允许它支持更多的接口。