(C)虚拟网络适配器

Qui*_*tin 2 c linux networking data-processing packet

在linux中是否有任何方式以编程方式创建可以侦听的虚拟网络适配器,以便每当尝试通过适配器发送数据时,都会调用一个方法?

我试图将所有数据包转发到单个IP地址,然后将其原始位置包含在数据包中.

这样的事情:

void sendPacket(char to[], char data[])
Run Code Online (Sandbox Code Playgroud)

因此,如果我通过虚拟网络适配器ping google.com,则会像这样调用该方法 sendPacket("GooglesIp","Whatever data a ping sends")

Mr.*_*nce 7

我认为您正在寻找的是Linux中的TUN/TAP设备,它允许程序充当网络接口.

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

然后,您可以编写程序来侦听传入数据的TUN/TAP接口,并相应地处理它.基本上你会将ping路由到新的TUN/TAP接口,然后有一个程序从接口读取数据包,并从那里路由它们.