Я хотел опубликовать этот ответ как обновление для пользователей более свежих сборок 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
).