使用netstat或route,以及可能的其他几个命令,检索主路由表中的默认网关非常简单。 (虽然提取它仍然比我预期的更难)但我没有找到任何方法为每个接口找到每个网关。
具体来说,我有wlan0和eth0接口,每个接口都有自己的标准网关。无论如何都要从某个地方提取它们。最好是在C ++中,用于Linux发行版。 (Ubuntu 12.04具体)
修改
也许我的术语不正确,所以我会尝试澄清:
我想通过相应地设置路由表来使用它们。
也许如果我误解了网关的目的,那么让我解释一下我的主要目标。
我希望能够指定使用无线连接,而不是以太网电缆,反之亦然。
EDIT2:
这些是我用来从端口5555重定向UDP数据包以通过wlan
发送的路由命令iptables -A OUTPUT -o wlan0 -t mangle -p udp --sport 5555 -j MARK --set-mark 1
ip rule add fwmark 1 table 1
ip route add dev wlan0 default via *.*.108.1 table 1
对于最后一个命令,我需要提供一些网关,这就是我要找的。 p>