Как получить информацию о шлюзе IP, есть опция, использующая wifimanager, но. Если вы не знаете, как найти шлюз, dns и другие данные в устройстве Android при подключении с помощью usb-модема.
Получите IP-адрес шлюза в android
Ответ 1
Я использую cyanogenmod 7.2 на android 2.3.4, затем просто открываю эмулятор терминала и печатаю:
$ ip addr show
$ ip route show
Ответ 2
Я хотел опубликовать этот ответ в качестве обновления для пользователей более поздних версий Android (CM11/KitKat/4.4.4). Я не тестировал это с помощью TouchWiz или более старых версий Android, поэтому YMMV.
Следующие команды могут выполняться во всех обычных местах (ADB, эмулятор терминала, сценарии оболочки, Tasker).
Перечислите все доступные свойства:
getprop
Получить интерфейс WiFi:
getprop wifi.interface
Свойства WiFi:
getprop dhcp.wlan0.dns1
getprop dhcp.wlan0.dns2
getprop dhcp.wlan0.dns3
getprop dhcp.wlan0.dns4
getprop dhcp.wlan0.domain
getprop dhcp.wlan0.gateway
getprop dhcp.wlan0.ipaddress
getprop dhcp.wlan0.mask
Вышеуказанные команды будут выводить информацию независимо от того, действительно ли WiFi подключен в данный момент.
Используйте один из следующих параметров, чтобы проверить, включен ли wlan0:
ifconfig wlan0
netcfg | awk '{if ($2=="UP" && $3 != "0.0.0.0/0") isup=1} END {if (! isup) exit 1}'
Чтобы получить IP-адрес wlan0 (только если он подключен), используйте одно из следующих действий:
ifconfig wlan0 | awk '{print $3}'
netcfg | awk '/^wlan0/ {sub("(0\\.0\\.0\\.0)?/[0-9]*$", "", $3); print $3}'
Просто для тщательности, чтобы получить свой общедоступный IP-адрес, ориентированный на Интернет, вы захотите использовать внешнюю службу. Чтобы получить общедоступный IP-адрес:
wget -qO- 'http://ipecho.net/plain'
Чтобы получить общедоступное имя хоста:
wget -qO- 'http://ifconfig.me/host'
Или получить свое общедоступное имя хоста непосредственно с вашего IP-адреса:
(nslookup "$(wget -qO- http://ipecho.net/plain)" | awk '/^Address 1: / { if ($NF != "0.0.0.0") {print $NF; exit}}; /name =/ {sub("\\.$", "", $NF); print $NF; exit}') 2>/dev/null
Примечание. Вышеупомянутая команда awk
кажется слишком сложной только потому, что она способна обрабатывать выходные данные из различных версий nslookup
. Android включает минимальную версию nslookup
как часть busybox
, но есть и автономная версия (часто включаемая в dnsutils
).
Ответ 3
Перейти к терминалу
$ adb -s UDID shell
$ ip addr | grep inet
or
$ netcfg | grep inet
Ответ 4
На Android 7 работает это:
ip route get 8.8.8.8
вывод будет: 8.8.8.8 через шлюз...
Ответ 5
DNS-сервер получается через
getprop net.dns1
ОБНОВЛЕНИЕ: с Android Nougat 7.x присутствует ifconfig, а netcfg отсутствует. Поэтому ifconfig можно использовать для поиска IP и сетевой маски.
Ответ 6
Это решение даст вам параметры сети. Проверьте это решение
Ответ 7
Установите приложение эмулятора терминала, затем просмотрите таблицу маршрутизации iproute
из командной строки. Не требует прав root. Я не знаю, как получить DNS-сервер. Нет файла /etc/resolv.conf
. Вы можете попробовать nslookup www.google.com
и посмотреть, что он сообщает для вашего сервера, но на моем телефоне он сообщает 0.0.0.0
, что не слишком полезно.
Ответ 8
Кажется, это хорошо работает для меня. Протестировано на Touchwiz 5.1, LineageOS 7.1 и CyanogenMod 11.
ip route list match 0 table all scope global
Дает вывод, похожий на этот:
default via 192.168.1.1 dev wlan0 table wlan0 proto static