Как я могу получить IP-адрес шлюза по умолчанию в сети, к которой подключено мое Android устройство?
Я понимаю, что об этом уже спрашивали раньше на SO, но ни одно из найденных мной решений не является достаточно надежным:
- Большинство решений рекомендуют использовать
DHCPInfo
, но что, если мое устройство не использует DHCP? - Некоторые рекомендуют получить DNS-сервер, но вы можете переопределить DNS-серверы в настройках WiFi-соединения.
- Я мог бы взять внутренний IP-адрес устройства (например,
192.168.0.2
) и заменить последний октет на a 1
, потому что это обычно IP-адрес шлюза по умолчанию. Но не всегда, особенно если шлюзом является другой телефон Android (на основе моих тестов на Pixel 2, например, точка доступа WiFi присвоит себе случайный IP-адрес в диапазоне 192.168.43.0/24
).
Я могу надежно получить IP-адрес для шлюза по умолчанию на Linux, запустив route -n
. Есть ли надежный способ получить его на Android 5 +?