在 linux 中有没有什么方法可以编程创建一个可以被监听的虚拟网络适配器,这样每当尝试通过适配器发送数据时,都会调用一个方法?
我正在尝试将所有数据包转发到一个 ip 地址,然后将它们的原始位置包含在数据包中。
像这样:
void sendPacket(char to[], char data[])
所以如果我通过虚拟网络适配器 ping google.com,该方法将像这样调用 sendPacket("GooglesIp","Whatever data a ping sends")
最佳答案
我认为您正在寻找的是 Linux 中的 TUN/TAP 设备,它允许程序充当网络接口(interface)。
http://en.wikipedia.org/wiki/TUN/TAP
然后您可以编写一个程序来监听 TUN/TAP 接口(interface)的传入数据,并相应地处理它。基本上,您会将 ping 路由到新的 TUN/TAP 接口(interface),然后让程序从接口(interface)读取数据包,并从那里路由它们。
关于c - (C) 虚拟网络适配器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7500028/