android 4.0.3 dhcp 自动获取ip和网关,获取网关的IP地址在android中
我想后这个答案对于更近的Android用户更新构建(CM11 /奇巧/ 4.4.4)。我还没有测试任何与TouchWiz或更旧的Android版本,所以YMMV。以下命令可以在所有常用的地方运行(ADB,Terminal Emulator,shell脚本,Tasker)。列出所有可用的属性:getprop获取WiFi接口:getprop wifi.interface无线属性:getprop dhc
我想后这个答案对于更近的Android用户更新构建(CM11 /奇巧/ 4.4.4)。我还没有测试任何与TouchWiz或更旧的Android版本,所以YMMV。
以下命令可以在所有常用的地方运行(ADB,Terminal Emulator,shell脚本,Tasker)。
列出所有可用的属性:
getprop
获取WiFi接口:
getprop wifi.interface
无线属性:
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
上述命令将输出信息,而不管是否无线实际上连接当时。
使用下列任一检查为wlan0是否为开:
ifconfig wlan0
netcfg | awk '{if ($2=="UP" && $3 != "0.0.0.0/0") isup=1} END {if (! isup) exit 1}'
使用下列任一拿到为wlan0(只有当它是连接)的IP地址:
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中)。
更多推荐
所有评论(0)