【问题标题】:How to get the default interface and its inet address?如何获取默认接口及其 inet 地址?
【发布时间】:2018-06-28 10:56:59
【问题描述】:

“默认接口”指的是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中是NOT

【问题讨论】:

标签: android linux sockets


【解决方案1】:

呃,我不知道接口是否可以标记为“默认”,但是有很多方法可以在没有 getifaddrs 的情况下检索接口列表。

您可以执行“ip link show”命令并解析结果(或“ifconfig”)。 您可以转到“/sys/class/net”,其中每个目录代表一个接口(并且这些目录下有可以帮助您的文件)。

我不知道 Android 是否像 Debian 一样工作,我建议您通过 Android NDK 或系统命令(如“ip”或“ifconfig”)找到一种方法,因为 /net 或 /proc 等目录可能会发生变化在不同的操作系统版本之间(即使它不是很常见,我不记得看到过)。

【讨论】:

    猜你喜欢
    • 2013-07-28
    • 2012-04-08
    • 1970-01-01
    • 1970-01-01
    • 2011-02-15
    • 2011-09-08
    • 1970-01-01
    • 2020-12-11
    相关资源
    最近更新 更多