Как узнать IP-адрес основного шлюза в устройствах с ОС Android?

Рассмотрим ситуацию, когда устройство под управлением операционной системы Android подключено к некой беспроводной сети Wi-Fi. Пользователь знает имя беспроводной сети (SSID) и пароль для этой сети (если используется безопасный доступ к сети Wi-Fi), но не знает более никаких параметров (IP-адрес основного шлюза, маску подсети, IP-адрес DHCP- и DNS-сервера).

IP-адрес на устройство присваивается автоматически по DHCP. Средствами операционной системы Android возможно узнать следующую информацию о сети, к которой подключено устройство: 

 

Пользователю доступно: 

  • состояние подключения
  • уровень сигнала
  • скорость синхронизации (подключения)
  • алгоритм безопасности
  • IP-адрес, который получило устройство от маршрутизатора (точки доступа)

Для того чтобы узнать IP-адрес основного шлюза и остальную информацию о сетевых интерфейсах устройства, в операционной системе Android существует несколько способов.

1. Более простой способ узнать основную информацию о сетевом интерфейсе предоставляет утилита ifconfig (https://play.google.com/store/apps/details?id=au.wsit.ifconfig.app)

Запущенная утилита сразу показывает:

  • IP-адрес, который получило устройство от маршрутизатора
  • Маску подcети
  • IP-адрес шлюза по умолчанию (т.е. адрес маршрутизатора)
  • IP-адрес DHCP-сервера
  • IP-адреса DNS-серверов
  • Время аренды выданного IP-адреса
  • MAC-адрес действующего сетевого интерфейса 


2. Можно использовать утилиту Android Terminal Emulator, которая, по сути, выполняет функции командной строки (https://play.google.com/store/apps/details?id=jackpal.androidterm).

Установив данное приложение с Google Play, нужно запустить его и ввести команду ip route show 

Данная команда выводит маршрут по умолчанию. Из примера видно, что IP-адрес основного шлюза в текущий момент 192.168.4.1 и трафик идет через интерфейс wlan0. 
То есть 192.168.4.1 – это и есть адрес маршрутизатора (точки доступа), к которому подключено устройство и через которое оно выходит в Интернет.

В Android Terminal Emulator можно использовать множество команд, которые актуальны для UNIX-систем. 
Так, например, команда netcfg показывает список сетевых интерфейсов на устройстве и их состояние.
Также с помощью команды ip addr show можно узнать более подробную информацию о настройках сетевых интерфейсов, например размер MTU, установленный на каждом из них.
Если есть root-доступ на устройство, команда su позволяет получить права администратора для терминала.

Приведем еще несколько команд, которые могут быть полезны.

Показать информацию о DNS-серверах:
getprop net.dns1
getprop net.dns2

Изменить IP-адреса DNS-серверов (при наличии прав root):
setprop net.dns1 8.8.8.8
setprop net.dns2 8.8.4.4
где 8.8.8.8 и 8.8.4.4 — новые IP-адреса DNS-серверов

Полный список команд можно посмотреть здесь: https://github.com/jackpal/Android-Terminal-Emulator/wiki/Android-Shell-Command-Reference

 

Была ли эта статья полезной?

Пользователи, считающие этот материал полезным: 51 из 83