Как получить IP-адрес, назначенный интерфейсу Ethernet?

Я хочу получить IP-адреса, назначенные интерфейсу Ethernet (не WiFi) моего планшета Android. Как я могу сделать это программно? Я натыкаюсь только на решения для WiFi и некоторые другие предположения о названии входа, например, «eth0» или что-то в этом роде. Я не чувствую, что это достаточно хорошо. Как я могу узнать тип интерфейса и получить назначенные ему IP-адреса?

Я лучше сделаю это программно в коде, без скриптов, размышлений и предположений. Есть ли такой способ?

Я на минимальном уровне API 19.


person JohnyTex    schedule 03.03.2020    source источник
comment
Пробовали ли вы традиционный подход Java через NetworkInterfaces.getNetworkInterfaces()? В нем перечислены все интерфейсы.   -  person Robert    schedule 03.03.2020
comment
Да, но как мне узнать тип содержащихся в нем интерфейсов?   -  person JohnyTex    schedule 03.03.2020
comment
вы можете проверить подключенную сеть, см.: stackoverflow.com/a/22304485/2855810 Также вы можете получить IP-адрес по типу сети. Проверьте этот ответ: stackoverflow.com/a/10683636/2855810   -  person Ergin Ersoy    schedule 03.03.2020
comment
Путем исключения: если вы знаете адрес Wi-Fi и удаляете интерфейс localhost, то остается интерфейс Ethernet. Кроме того, вы можете проверить имя интерфейса.   -  person Robert    schedule 03.03.2020
comment
Исключение не работает, потому что мне приходится делать множество предположений о том, какие интерфейсы могут существовать. Например, у меня на планшете также есть следующие типы: rmnet0, rmnet1 rmnet2, sit0, p2p0, другими словами: намного больше, чем просто Wi-Fi и шлейф. Насколько мне известно, интерфейс Ethernet может называться как угодно.   -  person JohnyTex    schedule 03.03.2020
comment
Странно то, чтоconnectionManager.getActiveNetworkInfo(), кажется, не содержит информации о том, какой интерфейс он фактически использует. networkInfo.getExtraInfo(), кажется, возвращает mac-адрес, но, судя по документам, он может вернуть что угодно.   -  person JohnyTex    schedule 03.03.2020