“默认接口(interface)”指的是 ppp0:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0
0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 wlp3s0
172.30.0.1 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 wlp3s0
当我访问 WAN 而不是 LAN 时,默认使用哪一个。
我需要在 Android 上运行它,因此无法使用 getifaddrs
,因为 ifaddrs.h
在 Android NDK 中不。
最佳答案
呃,我不知道接口(interface)是否可以标记为“默认”,但是有很多方法可以在不使用 getifaddrs 的情况下检索接口(interface)列表。
您可以执行“ip link show”命令并解析结果(或“ifconfig”)。 您可以转到“/sys/class/net”,其中每个目录代表一个接口(interface)(这些目录下有可以帮助您的文件)。
我不知道 Android 是否像 Debian 一样工作,我建议您通过 Android NDK 或系统命令(如“ip”或“ifconfig”)找到一种方法,因为像/net 或/proc 这样的目录可能会在不同操作系统版本之间发生变化(即使它并不常见,我不记得见过)。
关于android - 如何获取默认接口(interface)及其inet地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48337061/