最终走哪个网关是路由表决定的,跟你绑定那个 IP 无关。 socket 是网络层和传输层之间的接口,它无法决定你的数据包走哪个网关。你需要一个能操作数据链路层的库(即二层网络),或者能操作系统路由表的库也行。推荐你使用 scapy , scapy 是一个非常全面的网络库,能灵活的修改和发送二层、三层数据包,也能操作路由表。你可以用它直接发送二层网络包,把目的 MAC 改为你需要的网关的 MAC 就行。
falseen
2017-01-12 17:18:54 +08:00
我擦,上面打错一个字。是“跟你绑定哪个 IP 无关”。
另外我的回答有些草率了,你先说明一下你的网络情况吧。比如三个 ip 是什么,有几张网卡,网关是怎么配置的,路由表是怎样的。