Linux下C:如何知道网络连接的默认界面?(Linux C: How to know the de

2019-09-17 02:31发布

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

UPDATE

我想用一个C程序,而不是命令...

Answer 1:

你可以尝试一个稍微脏,但无限更简单的方法:

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等等。



文章来源: Linux C: How to know the default interface for internet access?