Подтвердить что ты не робот

Получите IP-адрес шлюза в android

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

4b9b3361

Ответ 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