3

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

我正在尝试将所有数据包转发到单个 IP 地址,然后将它们的原始位置包含在数据包中。

像这样的东西:

void sendPacket(char to[], char data[])

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

4

1 回答 1

9

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

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

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

于 2011-09-21T13:02:20.187 回答