2

我想找出正在使用的默认网络。我目前的方法是查找所有 IP 地址并将其与默认网关 IP 地址进行比较,但这听起来很愚蠢。正确的做法是什么?

更新

我想使用 C 程序,而不是通过命令...

4

1 回答 1

2

您可以尝试一种稍微脏一点但非常简单的方法:

cnicutar@lemon:~$ ip route show to 0.0.0.0/0
default via X.Y.Z.T dev eth0  proto static
                        ^^^^

所以你可以试试:

FILE *cmd = popen("ip route show", "r");
fgets(str, LEN, cmd);

然后你可以使用strtokstrstr等等。

于 2012-05-09T09:52:44.187 回答